Heim >Backend-Entwicklung >PHP-Tutorial >Wie leite ich Benutzer nach der Autorisierung in Laravel zu ihrem beabsichtigten Ziel um?

Wie leite ich Benutzer nach der Autorisierung in Laravel zu ihrem beabsichtigten Ziel um?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-02 12:13:17768Durchsuche

How to Redirect Users to Their Intended Destination After Authorization in Laravel?

Umleitung zurück zum ursprünglichen Ziel nach der Autorisierung in Laravel

Die Umleitung zum beabsichtigten Ziel nach der Benutzerautorisierung ist eine häufige Anforderung in Webanwendungen. Um dies in Laravel zu erreichen, müssen Sie verstehen, wie die Autorisierung funktioniert, und geeignete Techniken anwenden.

Der Autorisierungsprozess

Wenn ein Benutzer versucht, auf eine geschützte Route zuzugreifen, verwendet die Authentifizierungs-Middleware von Laravel B. die Authentifizierungs-Middleware, fängt die Anfrage ab. Wenn der Benutzer nicht angemeldet ist, wird er auf eine Anmeldeseite weitergeleitet.

Bestimmen des ursprünglichen Ziels

Nach der Anmeldung müssen wir die ursprüngliche Seite des Benutzers ermitteln habe versucht, darauf zuzugreifen, bevor der Autorisierungsprozess begann. Laravel bietet hierfür integrierte Funktionen:

Laravel 5.3 und höher

Ab Laravel 5.3 wurde die vorgesehene Hilfsmethode eingeführt. Im Login-Controller nach erfolgreicher Authentifizierung:

return redirect()->intended('/');

Dadurch wird der Benutzer zu der Seite weitergeleitet, auf die er ursprünglich zugreifen wollte.

Laravel 5 bis 5.2

In Laravel 5 bis 5.2 können Sie die Methode intend() für die Weiterleitung verwenden Klasse:

return redirect()->intended('defaultpage');

Wenn die beabsichtigte Seite nicht festgelegt ist, wird auf die angegebene Standardseite weitergeleitet, z. B. die Startseite.

Laravel 4 und früher

Vor Laravel 5.3 fehlte die offizielle Unterstützung für diese Funktionalität. Ein Ansatz besteht darin, die beabsichtigte URL während des Autorisierungsprozesses in der Sitzung zu speichern und nach erfolgreicher Anmeldung dorthin umzuleiten:

// In the authorization filter
if (Auth::guest()) {
    Session::put('intended', Request::fullUrl());
    return Redirect::guest('login');
}

// In the login controller
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    $intended = Session::get('intended');
    Session::forget('intended');
    return Redirect::to($intended ?: 'defaultpage');
}

Manuelle Implementierung

Wenn Sie möchten Wenn Sie diese Funktion manuell implementieren, können Sie Benutzer auf eine Seite umleiten, auf der sie nach der Anmeldung ihr gewünschtes Ziel auswählen können. Alternativ können Sie die beabsichtigte Seite in einer vorübergehenden Variablen (z. B. Cookie) speichern und Benutzer umleiten sofort nach erfolgreicher Autorisierung darauf zugreifen.

Das obige ist der detaillierte Inhalt vonWie leite ich Benutzer nach der Autorisierung in Laravel zu ihrem beabsichtigten Ziel um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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