Die Laravel-Anwendung URL wird so etwas wie app.laravel.com\{clientName}
sein. Alle Routen folgen dem client_name
, zum Beispiel app.laravel.com\{clientName}\home
, app.laravel.com\{clientName}\profile
. Will laden/rendern die Anwendung hängt von der clientName
.Laravel Anwendung Session-Pfad dynamisch ändern
routes/web.php
Route::group(['prefix' => '{clientName}', 'middleware' => 'appclient'], function() {
Route::get('/', '[email protected]');
Route::post('login', 'Auth\[email protected]');
Route::post('logout', 'Auth\[email protected]');
Route::get('home', '[email protected]');
});
Im appclient
Middleware
public function handle($request, Closure $next) {
$clientName = explode('/', $request->path())[0];
$client = Client::where('clientName', $clientName)->first();
if(!isset($client->id)) {
abort(404);
}
Config::set('session.path', "/$clientName");
return $next($request);
}
Was ich versuche, die Sitzung wird auf dem clientName
Verzeichnis basiert zu erreichen. Wenn ich mich anmelde, erhalte ich TokenMismatchException.
Erste Frage
Kann ich die Sitzung basierend auf URL mit Verzeichnis wie app.laravel.com\{clientName}
?
zweite Frage
Ich sah es eine Einstellung session.path
ist, was oben Ich habe versucht, ist, diesen Ansatz zu verwenden. Wenn das möglich ist, wie kann ich dieses Problem beheben? Ist es eine gute Idee, den Sitzungspfad in der Middleware zu aktualisieren?
Freuen uns über jede Rückmeldung oder andere Ansätze
UPDATE
- Mit
Redis
als Session-Treiber - In meiner weiteren Untersuchung die Anfrage Session-Token jedes Mal erzeugt neue