Heim  >  Artikel  >  PHP-Framework  >  Wie Laravel authentifiziert

Wie Laravel authentifiziert

PHPz
PHPzOriginal
2023-04-13 18:12:081220Durchsuche

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:

  • web: für sitzungsbasierte Webanwendungen.
  • api: für zustandslose API.

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:

  • app/Http/Controllers/Auth/LoginController.php
  • app/Http/Controllers/Auth/RegisterController.php
  • app/Http/Controllers/Auth/ResetPasswordController.php
  • app / Http/Controllers/Auth/ForgotPasswordController.php
  • resources/views/auth/login.blade.php
  • resources/views/auth/register.blade.php
  • resources/views/auth/passwords/email.blade. php
  • resources/views/auth/passwords/reset.blade.php

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!

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