Laravel ist derzeit eines der beliebtesten PHP-Frameworks. Es bietet viele Funktionen, die am häufigsten verwendeten sind jedoch die Benutzerauthentifizierung und -autorisierung. Laravel bietet ein umfangreiches und dennoch einfaches Authentifizierungssystem, das problemlos in jede Laravel-Anwendung integriert werden kann. In diesem Artikel wird vorgestellt, wie Laravel die Authentifizierung durchführt.
Grundlegende Konzepte der Laravel-Authentifizierung
Die Laravel-Authentifizierung bietet viele verfügbare Routen und Methoden zur Abwicklung von Anmelde-, Registrierungs-, Abmeldevorgängen usw. Bevor wir weitere Details besprechen, müssen wir die Grundkonzepte der Laravel-Authentifizierung verstehen.
Benutzermodell: Laravel verwendet das Benutzermodell, um Benutzer darzustellen. Das Erstellen eines Benutzermodells in Laravel ist sehr einfach. Führen Sie einfach den Befehl artisan aus: php artisan make:model User
Guard (Guard): In Laravel ist ein Guard ein Name, der zur Angabe einer bestimmten Authentifizierungsschicht verwendet wird, z. B. Web oder API.
Dienstanbieter: Dienstanbieter ist eine der grundlegendsten Komponenten im Laravel-Framework. Jeder Dienstanbieter wird verwendet, um Dienste zu registrieren oder Schnittstellen und Implementierungen zu binden.
Authentifizierungsanbieter: Der Authentifizierungsanbieter ist der eigentliche Implementierer der Authentifizierung. Laravel verwendet standardmäßig den EloquentAuthenticationProvider, der ein Benutzermodell zur Authentifizierung von Benutzeranmeldeinformationen verwendet.
So authentifizieren Sie sich in Laravel
Da wir nun die Grundkonzepte der Laravel-Authentifizierung verstanden haben, können wir mit der Erläuterung der Authentifizierung in Laravel beginnen. Es gibt mehrere Schritte zur Authentifizierung in Laravel:
Schritt 1: Guard konfigurieren
Um mit der Laravel-Authentifizierung zu beginnen, müssen Sie zunächst Guard in der Datei config/auth.php konfigurieren. Mit Guard können Sie verschiedene Authentifizierungskonfigurationen in Ihrer Anwendung angeben, z. B. Webauthentifizierung und API-Authentifizierung. Laravel definiert die folgenden Guards vor:
Das Konfigurieren von Guard ist ein einfacher Vorgang. Suchen Sie das Guards-Array in der Datei config/auth.php und fügen Sie den folgenden Inhalt hinzu:
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ],
Im obigen Code definieren wir zwei Guards: Web und API.
Schritt 2: Definieren Sie das authentifizierte Benutzermodell
Laravel benötigt ein Benutzermodell zur Verifizierung. Wenn Sie die Standardkonfiguration von Laravel verwenden, verfügen Sie bereits über ein Modell namens „Benutzer“, sodass Sie es nicht definieren müssen. In anderen Fällen müssen Sie eine Tabelle und Authentifizierungsfelder für das Benutzermodell angeben.
protected $table = 'your_user_table_name'; public function getAuthPassword() { return $this->your_password_column_name; }
Schritt 3: Authentifizierungsrouten erstellen
In der web.php-Datei können Sie schnell eine Reihe von Authentifizierungsrouten erstellen. Dieser Satz von Routen ermöglicht Vorgänge wie Registrierung, Anmeldung und Abmeldung. Das folgende Codebeispiel zeigt, wie man eine Authentifizierungsroute in Laravel erstellt:
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login'); Route::post('login', 'Auth\LoginController@login'); Route::post('logout', 'Auth\LoginController@logout')->name('logout');
Schritt 4: Authentifizierungs-Controller generieren
Jetzt müssen Sie den Controller für die Authentifizierungsroute erstellen. Mit dem Befehl make:auth Artisan können Sie schnell einen Standardcontroller und eine Standardroute erstellen. Dadurch wird die folgende Datei erstellt:
Jetzt können Sie in diesen Controllern und Ansichten entsprechende Anpassungen vornehmen.
Schritt 5: Authentifizierungsanbieter einrichten
AuthenticationProvider ist eine Klasse, die zur Überprüfung von Benutzeranmeldeinformationen verwendet wird. In Laravel wird standardmäßig EloquentAuthenticationProvider verwendet. Geben Sie ein Benutzermodell und Authentifizierungsfelder für Ihren Authentifizierungsanbieter an.
protected $model; public function __construct(User $model) { $this->model = $model; } public function retrieveById($identifier) { return $this->model->find($identifier); } public function retrieveByCredentials(array $credentials) { return $this->model->where('email', $credentials['email'])->first(); } public function validateCredentials(UserContract $user, array $credentials) { return Hash::check($credentials['password'], $user->getAuthPassword()); }
Der obige Code ist der Standardanbieter von EloquentAuthenticationProvider, und Sie können ihn darauf basierend anpassen. Natürlich können Sie auch Ihren eigenen Provider implementieren.
Schritt 6: Verwenden Sie die Auth-Fassade zur Authentifizierung
In Laravel können Sie die Auth-Fassade verwenden, um die Benutzerauthentifizierung zu implementieren. Mit der Authentifizierungsüberprüfung können Sie ganz einfach überprüfen, ob der Benutzer angemeldet, authentifiziert usw. ist.
Erkennen Sie, ob Sie angemeldet sind
if (Auth::check()) { // 已经登录,继续操作 } else { // 未登录,跳转到登录页面 return redirect('login'); }
Authentifizierung durchführen
$credentials = [ 'email' => $email, 'password' => $password, ]; if (Auth::attempt($credentials)) { // 验证成功 } else { // 验证失败 }
Abmelden
Auth::logout();
Nach Abschluss aller Schritte können Sie die Benutzerauthentifizierung in Laravel implementieren. Nachdem Sie nun die wichtigsten Authentifizierungskonzepte und -prozesse von Laravel beherrschen, können Sie damit eine starke und dennoch einfache Benutzerauthentifizierung für Ihre eigenen Anwendungen bereitstellen.
Das obige ist der detaillierte Inhalt vonWie Laravel authentifiziert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!