Verhindern, dass der Browser ' s Back Button Login Nach dem Logout in Laravel 5
Ich bin neu in Laravel 5 und versuchen, eine einfache Authentifizierung Seite. Mein problem ist, ich kann die Abmeldung auch dann richtig, wenn ich auf Abmelden-link aber wenn ich auf der zurück-button des Browsers, noch in der Lage, um zu sehen, den Inhalt der Seite, die sollte eigentlich nicht gesehen werden mit Bezug auf meine auth-middleware-Prozess. Ich lese kann ich verhindern, dass dieses durch deaktivieren der Zwischenspeicherung, aber glaube nicht, es ist der beste Weg, dies zu tun also, wie kann ich dies in einer besseren Art und Weise ? Einfach meine Abmeldung Weg ist
Route::get('logout', array('uses' => 'LoginController@logout'));
Logout-Funktion ist:
public function logout() {
Auth::logout(); //logout user
Session::flush();
Redirect::back();
return Redirect::to('pages/login'); //redirect back to login
}
- können Sie Ihre Codes für Abmeldung und nicht nur die route
- wenn Sie möchten, cache löschen haben Sie versucht, Cache::flush()
- überprüfen Sie die bearbeitete Frage bitte, ich habe es
- Dies ist nicht ein Problem überhaupt. Wie @Wader unten erwähnt nur seine browser-Cache-Seite. Um dies zu überprüfen klicken Sie auf zurück-Taste und versuchen Sie dann den Zugriff auf Seiten die geschützt sind
- Stimme mit @Digitlimit
- ich habe schon gemerkt, dass bevor ich poste diese Frage, aber einige wichtige Daten gesehen werden kann, wenn die zurück-Taste geklickt wird, so habe ich, um zu verhindern, dass diesem Fall. Vielen Dank für die Ratschläge, aber.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der Benutzer auf die zurück-Taste Sie sind nicht eigentlich eingeloggt, nur der browser das Rendern, was es hat zwischengespeichert von der vorherigen Seite Ansichten. Der Benutzer nicht in der Lage sein zu navigieren und interagieren mit etwas, das erfordert, dass Sie eingeloggt sein da, um Ihre Anwendung auf dem server, Sie sind nicht authentifiziert.
Wenn der Benutzer auf die zurück-Taste Sie haben keine Kontrolle über, die als es nicht machen eine Anfrage an den server.
Verwenden Sie die zurück-Taste, die nur die Inhalte, die Sie in der Lage sein, um Ansicht ist, dass das, was Sie bereits besucht haben, während Sie eingeloggt sind. Wenn Sie versuchen, auf etwas neues, werden Sie machen eine neue Anforderung an Ihre Anwendung, Ihre middleware auslösen und leiten Sie Sie auf der login-Seite.
Ich denke, wenn Sie wirklich wollen, zu stoppen dieses Verhalten könnte man JavaScript-und so senden Sie eine ajax-Anfrage und überprüfen Sie, ob der Benutzer angemeldet ist, die Art und Weise, aber ziemlich nutzlos aus der Sicht der Sicherheit.
Dieser Lösungen funktioniert!
Erstellen einer middleware unter Verwendung von artisan.
Innerhalb RevalidateBackHistory middleware, setzen wir die header no-cache und aktualisiert.
Aktualisieren Sie die Anwendung die route für middleware in Kernel.php
Und das ist alles! Also im Grunde brauchen Sie nur zu rufen revalidate middleware für Routen, die eine Benutzerauthentifizierung erfordern.
Schritt 1 : erstellen einer middleware unter Verwendung von folgendem Befehl:
Schritt 2:
ersetzen Inhalt PreventBackHistory.php mit folgendem Inhalt:
Schritt 3: registrieren middleware in kernal.php
Und gut zu gehen 🙂
Einer Methode, die ich verwendet habe ist einfach die Umleitung zu der vorherigen Seite nach logout.
So lange wie auf der vorigen Seite wurde gesichert, die auth-middleware wird kick in und leiten Sie zurück auf die login-Seite. Nun, wenn Sie klicken Sie auf die zurück-Taste die Vorherige Seite nicht mehr zwischengespeichert werden und Sie bekommen nur die login-Seite wieder.
Ursprünglichen Diskussion: https://laracasts.com/discuss/channels/requests/back-button-browser
Versuchen Sie umleiten zu einer geschützten Strecke mit auth middleware:
so wird es Kraft umleiten auf die login-Seite & back-button wird nicht die Vorherige Seite anzuzeigen