Heim > Artikel > PHP-Framework > Laravel-Login-Standardsprung
Laravel ist ein sehr beliebtes PHP-Framework, das viele praktische Funktionen und leistungsstarke Funktionen bietet, um Entwicklern dabei zu helfen, Webanwendungen schneller und effizienter zu entwickeln. Eine der leistungsstarken Funktionen ist das Benutzeranmeldesystem. In Laravel können Sie schnell ein Benutzerauthentifizierungssystem erstellen, um Benutzer bei Ihrer Anwendung anzumelden. Viele gängige Benutzerauthentifizierungsfunktionen wie Registrierung, Login, Passwort-Reset usw. können mithilfe einfacher Codes problemlos implementiert werden.
Wenn sich ein Benutzer erfolgreich bei Ihrer Anwendung anmeldet, leitet Laravel den Benutzer standardmäßig in das Stammverzeichnis der Anwendung um. Manchmal möchten Sie jedoch, dass Benutzer nach der Anmeldung zu einer bestimmten Seite weitergeleitet werden, beispielsweise zum Profil oder zur Systemsteuerung des Benutzers. In diesem Artikel erklären wir, wie Sie die Standard-Anmeldeumleitungs-URL in Laravel festlegen.
Schauen wir uns zunächst an, wie das Benutzerauthentifizierungssystem von Laravel funktioniert. Laravel verwendet standardmäßig den Guard, um die Benutzerauthentifizierung zu verwalten, und der „Web“-Guard ist der von Laravel standardmäßig verwendete Guard. Bevor Sie Guard verwenden, müssen Sie ihn in der Datei config/auth.php konfigurieren. In dieser Datei können Sie verschiedene Guards und deren Konfiguration definieren. Unten sehen Sie beispielsweise ein Beispiel für eine config/auth.php-Datei, die zwei Wächter definiert: „web“ und „admin“.
return [ 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => AppModelsUser::class, ], 'admins' => [ 'driver' => 'eloquent', 'model' => AppModelsAdmin::class, ], ], ];
Im obigen Beispiel können wir sehen, dass sowohl „web“ Guard als auch „admin“ Guard den Sitzungstreiber für die Authentifizierung verwenden, wobei „web“ Guard den Anbieter „users“ für die Benutzerauthentifizierung verwendet, während „admin“ Guard „admins“ verwendet ” Anbieter für die Administratorauthentifizierung. Darüber hinaus können wir auch die Standard-Umleitungs-URL jedes Guards in der Datei config/auth.php konfigurieren. Hier ist beispielsweise ein Beispiel für die Verwendung der Standard-Umleitungs-URL:
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', 'redirect' => '/', ], ],
Im obigen Beispiel setzen wir die Standard-Umleitungs-URL des „Web“-Guards auf „/“, das Stammverzeichnis der Anwendung. Wenn sich der Benutzer erfolgreich anmeldet, wird er zu dieser URL weitergeleitet. Ebenso können Sie die Weiterleitungs-URL bei Bedarf ändern, beispielsweise zum Profil oder zur Systemsteuerung des Benutzers. Sie müssen lediglich die Option „Umleiten“ in der Konfiguration des Guards auf die URL ändern, die umgeleitet werden soll.
Wenn Sie jedoch mehrere Guards in Ihrer Anwendung haben, wie zum Beispiel die Guards „web“ und „admin“ im obigen Beispiel, wie legen Sie dann die Standard-Umleitungs-URL fest? In diesem Fall bietet Laravel eine einfache Lösung, mit der Sie ganz einfach die Standard-Weiterleitungs-URL für jeden Guard festlegen können.
Standardmäßig stellt Laravel einen LoginController in der Datei app/Http/Controllers/Auth/LoginController.php zur Verwaltung von Benutzeranmeldungen bereit. Sie können die Standard-Umleitungs-URL für jeden Guard in diesem Controller festlegen. Hier ist beispielsweise ein Beispiel für die Änderung der Standard-Umleitungs-URL für „Web“-Guard und „Admin“-Guard:
<?php namespace AppHttpControllersAuth; use AppHttpControllersController; use IlluminateFoundationAuthAuthenticatesUsers; class LoginController extends Controller { use AuthenticatesUsers; protected $redirectTo = '/'; public function __construct() { $this->middleware('guest')->except('logout'); } protected function redirectTo() { if (auth()->user()->isAdmin()) { return '/admin/dashboard'; } else { return '/home'; } } }
Im obigen Beispiel überschreiben wir die Methode „redirectTo()“ in LoginController und geben sie basierend auf dem Guard des aktuellen Benutzers zurück Verschiedene Weiterleitungs-URLs. Wenn der Wächter des aktuellen Benutzers „admin“ ist, wird er zum Administrator-Kontrollfeld weitergeleitet, andernfalls wird er zur persönlichen Homepage des Benutzers weitergeleitet. Sie können die Weiterleitungs-URL entsprechend Ihren Anforderungen ändern.
Es ist zu beachten, dass die Methode „redirectTo()“ nur zum Umleiten von Benutzern verwendet werden kann, wenn die Option „redirect“ in Guards festgelegt ist. Wenn Sie die Option „redirect“ in der Datei config/auth.php nicht festlegen, müssen Sie die Standard-Weiterleitungs-URL verwenden. Darüber hinaus unterscheidet sich das Überschreiben der Methode „redirectTo()“ grundsätzlich von der direkten Änderung der Option „redirect“. In der Methode „redirectTo()“ können Sie einen beliebigen Logikcode schreiben, um eine genaue Steuerung der Weiterleitungs-URL zu erreichen.
Insgesamt ist das Festlegen der Standard-Login-Weiterleitungs-URL für Laravel sehr einfach. Sie können dies über die Datei „config/auth.php“ oder die Methode „redirectTo()“ in LoginController festlegen. Wenn Ihre Anwendung über mehrere Wächter verfügt, können Sie im LoginController eine detaillierte Steuerung der Standardumleitungs-URL jedes Wächters vornehmen. Diese Methoden geben Ihnen mehr Kontrolle über die Benutzererfahrung und den Ablauf Ihrer Anwendung und machen sie reibungsloser und benutzerfreundlicher.
Das obige ist der detaillierte Inhalt vonLaravel-Login-Standardsprung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!