Heim > Backend-Entwicklung > PHP-Tutorial > Melden Sie sich bei Laravel5.4 erneut an, um das Springen zur Codefreigabe vor der Anmeldung zu implementieren

Melden Sie sich bei Laravel5.4 erneut an, um das Springen zur Codefreigabe vor der Anmeldung zu implementieren

小云云
Freigeben: 2023-03-20 06:10:02
Original
1948 Leute haben es durchsucht

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); }
Nach dem Login kopieren

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);
Nach dem Login kopieren

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(&#39;reurl&#39;) }}"/>
 @endif
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage