Manchmal kommt es nach der Benutzeranmeldung zu einer Ablaufzeit, und Benutzer müssen sich nach einer Zeitüberschreitung erneut anmelden. In diesem Artikel werden Ihnen hoffentlich die Prinzipien und Methoden der erneuten Anmeldung in Laravel 5.4 vorgestellt es kann jedem helfen.
1. Anwendungsszenarien:
Es gibt eine Ablaufzeit, nachdem sich der Benutzer angemeldet hat, und der Benutzer muss sich nach Ablauf der Zeitspanne erneut anmelden. Beispiel: Wenn sich der Benutzer auf der Seite /user/2 befindet und die Anmeldung abläuft, wird der Benutzer zur Anmeldeseite weitergeleitet. Nach der Anmeldung sollte sich der Benutzer immer noch auf /user/2 statt auf home/index befinden.
2. Implementierungsprinzip
Nachdem festgestellt wurde, dass der Benutzer abgelaufen ist, speichern Sie die aktuelle URL-Adresse des Benutzers in der Sitzung und springen Sie nach der nächsten Anmeldung zu dieser URL-Adresse.
3. Spezifische Implementierung in Laravel
Routing-Middleware (Bestimmung des Anmeldestatus) Hier wird der Anmeldestatus des Benutzers basierend darauf bestimmt, ob das Cookie abgelaufen ist. Die Middleware bestimmt nur die anmeldebezogene Beurteilung und Ausführung und führt nichts Redundantes aus (ich verwende den Cookie-Wert $token als Sitzungsschlüsselspeicher beim Anmelden), der Code lautet wie folgt:
public function handle($request, Closure $next) { //判断cookie是否存在 if ($token = Cookie::get('token')) { //判断session信息,保持状态一致 if ($request->session()->get($token)) { return $next($request); } } //获取当前url,跳转到登陆页 $returnUrl = urlencode($request->getRequestUri()); return redirect('/login?reurl=' . $returnUrl); }
Anmeldeseite ( Hier wird die Interaktion mit der Seite und der Sprunglogik verarbeitet. Gehe zur Anmeldeseite. Dies kann in der Middleware implementiert werden, wobei das Flashen der URL für die Front-End-Verwendung implementiert wird.
return redirect('/')->with('reurl', $returnUrl);
Seitenseite (um die Flash-Speicherinformationen zu ermitteln) Es gibt Ajax- und Submit-Anmeldungen. Es sollten nur sehr wenige Submits vorhanden sein Melden Sie sich dann im Backend an, um die URL zu ermitteln.
@if (session('reurl')) <input type="hidden" name="reurl" value="{{ session('reurl') }}"/> @endif
Bei der Anmeldung (Anmeldelogik) wird die Logik zum Ermitteln des Benutzerkontokennworts und zum Speichern von Cookies und Sitzungen weggelassen. Schließlich erhält das Frontend die URL, location.href = 'url', und springt zur ursprünglichen URL-Adresse.
$reurl = $request->get('reurl'); $url = empty($reurl) ? '/home/index' : $reurl; return response($url);
Hinweis: In diesem Artikel wird nur der relevante Code zur Implementierung der erneuten Anmeldung veröffentlicht. Bitte ändern Sie den tatsächlichen Code entsprechend dem tatsächlichen Unternehmen.
Verwandte Empfehlungen:
thinkphp hat immer noch ein Problem damit, nach der Anmeldung zur Vor-Anmeldeseite zu springen
Das obige ist der detaillierte Inhalt vonMelden Sie sich bei Laravel5.4 erneut an, um das Springen zur Codefreigabe vor der Anmeldung zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!