Heim > PHP-Framework > Laravel > Hauptteil

Laravel-Sprung nach dem Login

王林
Freigeben: 2023-05-29 14:15:37
Original
598 Leute haben es durchsucht

Die Authentifizierung der Benutzeranmeldung ist eine wesentliche Funktion bei der Entwicklung von Webanwendungen. Das Laravel-Framework bietet verschiedene Möglichkeiten zur Implementierung der Benutzerauthentifizierung und stellt außerdem ein Standardsystem zur Identitätsauthentifizierung (LaravelIlluminateAuth) bereit, um Entwicklern die Implementierung von Benutzerregistrierung, Anmeldung, Abmeldung und anderen Funktionen in der Anwendung zu erleichtern.

Nach erfolgreicher Login-Authentifizierung möchten wir häufig zu einer bestimmten Seite springen, beispielsweise zur Profilseite des Benutzers oder zu einer bestimmten Funktionsseite. Im Laravel-Framework ist es sehr einfach, einen Sprung nach der Anmeldung zu implementieren.

In diesem Artikel werden verschiedene Möglichkeiten vorgestellt, wie Benutzer nach der Anmeldung im Laravel-Framework springen können.

Der Standard-Anmeldesprung des Laravel-Frameworks

Das von LaravelIlluminateAuth bereitgestellte Identitätsauthentifizierungssystem ist standardmäßig mit einem Sprung konfiguriert, nachdem sich der Benutzer angemeldet hat. In der Konfigurationsdatei config/auth.php gibt es die folgende Standardkonfiguration:

'redirect' => [
    'login' => '/login',
    'logout' => '/logout',
    'home' => '/home',
    'register' => '/register',
    'verify' => '/email/verify',
    'reset' => '/password/reset',
    'confirm' => '/password/confirm',
  ],
Nach dem Login kopieren

Darunter stellt „home“ die Sprungseite nach der Anmeldung dar und der Standardwert ist der /home-Pfad. Wenn Sie die Standardsprungseite ändern müssen, müssen Sie nur den Pfad zur gewünschten Seite ändern.

Sprungpfad manuell angeben

Wenn Sie die Sprungseite nach der Anmeldung im Controller manuell angeben müssen, können wir die vom Laravel-Framework bereitgestellte RedirectResponse-Instanz verwenden und sie über die Methode „redirect()“ implementieren.

Zum Beispiel können wir im Benutzercontroller die Methode „authenticated()“ im Merkmal „IlluminateFoundationAuthAuthenticatesUsers“ überschreiben:

use IlluminateSupportFacadesAuth;

class UserController extends Controller
{
    use AuthenticatesUsers;

    protected function authenticated(Request $request, $user)
    {
        return redirect()->route('user.show', $user->id);
    }
}
Nach dem Login kopieren

Der obige Code kann zur angegebenen Benutzerprofilseite springen, nachdem sich der Benutzer erfolgreich angemeldet hat.

Zur vorherigen Seite weiterleiten

Manchmal müssen wir den Sprungpfad festlegen, nachdem sich der Benutzer auf der Seite angemeldet hat, bevor er sich anmeldet. Sie können die Funktion session() und die Methode URL:: previous() von Laravel verwenden.

Zum Beispiel können wir es im Login-Controller so implementieren:

use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesURL;

class LoginController extends Controller
{
    public function login(Request $request)
    {
        $credentials = $request->only('email', 'password');
        if (Auth::attempt($credentials)) {
            return redirect()->intended(URL::previous());
        }
        return back()->withErrors(['email' => '登录失败']);
    }
}
Nach dem Login kopieren

Im obigen Code verwenden wir die Methode „redirect()->intended()“, die den Benutzer vor der Protokollierung auf die besuchte Seite umleitet In . Wenn der Benutzer zuvor noch keine anderen Seiten besucht hat, wird er zum Standard-Login-Sprungpfad weitergeleitet.

Verwenden Sie Middleware, um zur angegebenen Seite zu springen.

Die Middleware des Laravel-Frameworks bietet praktische Identitätsauthentifizierungs- und Autorisierungsfunktionen. Wir können den Sprungpfad nach der Anmeldung in einer Middleware festlegen.

Zum Beispiel können wir den Sprungpfad nach der Anmeldung in der Authentifizierungs-Middleware konfigurieren:

namespace AppHttpMiddleware;

use IlluminateAuthMiddlewareAuthenticate as Middleware;

class Authenticate extends Middleware
{
    protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return route('login'); // 设置默认的跳转路径
        }
    }
}
Nach dem Login kopieren

Im obigen Code verwenden wir die Methode „redirectTo()“, um fehlgeschlagene Anmeldeanfragen zu verarbeiten. Wenn erwartet wird, dass die Anfrage Daten im JSON-Format zurückgibt, wird direkt ein 401-Fehler zurückgegeben; andernfalls wird der Benutzer zur Anmeldeseite weitergeleitet.

Wenn Sie andere Sprungpfade angeben müssen, müssen Sie nur den Routing-Alias ​​in der Return-Anweisung ändern.

Zusammenfassung

Die oben genannten sind mehrere Möglichkeiten, einen Sprung nach der Benutzeranmeldung im Laravel-Framework zu implementieren. Die konkret gewählte Methode hängt von den tatsächlichen Bedürfnissen und Entwicklungsszenarien des Entwicklers ab. Unabhängig davon, welche Methode verwendet wird, kann sie uns dabei helfen, die Benutzerauthentifizierungsfunktion zu implementieren und nach der Anmeldung bequem und schnell zu springen.

Das obige ist der detaillierte Inhalt vonLaravel-Sprung nach dem Login. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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