2015-12-30 11 views
10

Ich habe ein einfaches Authentifizierungssystem auf Laravel 5.2 mit Sentinel implementiert.Laravel 5.2 Login-Sitzung nicht persistent

// Route : /login 
$success = Sentinel::authenticate(array(
    'email' => $email, 
    'password' => $password, 
)); 

echo $success ? 'Login success' : 'Login failed'; 

So werden die oben Codeausgänge Login success nach dem Authentifizierungscode. Der Anmeldestatus wird jedoch nicht für andere Anfragen beibehalten. Dh: wenn ich den Authentifizierungsstatus von anderen Anfragen überprüfe, heißt es, dass ich nicht eingeloggt bin!

// Route : test-login 
echo \Sentinel::check() ? 'User is logged in' : 'User is not logged in'; 

Ich habe sogar eine defaut Laravel AUTHENCATION mit \Auth::attempt umzusetzen versucht. Aber das gibt auch das Gleiche.

Jede Hilfe zu diesem wird sehr geschätzt.

+0

Ist dieses frische Laravel 5.2 Projekt? Können Sie Ihre 'routes.php' Datei anzeigen? –

+0

Sind Ihre "Login" - und "Test-Login" -Routen innerhalb der "web" -Middlewaregruppe? – patricus

+0

@ MarcinNabiałek: es ist ein frisches Laravel 5.2-Projekt und ich denke, ich habe das Problem. Wie @patricus erwähnt hat, waren meine Routen nicht in der 'web' Middleware. Es funktionierte, nachdem ich alle meine Routen in die "Web" -Middleware bewegt hatte – Nauphal

Antwort

21

In Laravel 5.2 müssen Sie web Gruppe middlewere auf alle Ihre Routen anwenden, die Sie Sitzungen arbeiten möchten. Dies ist die wichtigste Änderung von Laravel 5.1.

Bitte schauen Sie auf https://laravel.com/docs/5.2/routing#basic-routing

Der Standard routes.php Datei im Moment wie folgt aussieht:

Route::group(['middleware' => ['web']], function() { 
    // here you should put your routes 
}); 

EDIT

Sie auch bei https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php in middlewareGroups Eigenschaft direkt sehen können wissen, welche Middlewares gefeuert werden für web Gruppe Middleware

+3

Laravel wird saugt. Diese neuen Versionen sind komplexer als je zuvor. – manix

+1

@manix Ich stimme nicht zu. Was erwarten Sie von einer neuen Version der Software? Wahrscheinlich neue Funktion und wenn neue Funktionen hinzugefügt werden, müssen Sie der Anwendung immer Komplexität hinzufügen. Ich kann jedoch zustimmen, dass der Dokumentation eine detaillierte Beschreibung fehlt, so dass es manchmal schwierig ist, herauszufinden, wie es funktioniert. Und immer können Sie die ältere Version auf Laravel verwenden, wenn die Funktionalität für Sie in Ordnung ist. –

+3

Dies muss auf den Migrationsleitfaden so bald wie möglich geschrieben werden. – dschu