E-Mail-Authentifizierung
- Einführung
- E-Mail vor Felder validieren
- Route schützen
- Ereignis
E-Mail Verifizierung
Einführung
Viele Webanwendungen werden Fordern Sie Benutzer auf, ihre E-Mail-Adresse vor der Nutzung zu bestätigen. Anstatt Sie zu zwingen, es wiederholt in jeder Anwendung zu implementieren, bietet Laravel eine bequeme Möglichkeit, E-Mail-Authentifizierungsanfragen zu senden und zu überprüfen.
Modellvorbereitung
Bevor Sie beginnen, müssen Sie überprüfen, ob Ihr
AppUser
Modell denIlluminateContractsAuthMustVerifyEmail
Vertrag umsetzt:<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements MustVerifyEmail{ use Notifiable; // ... }
Datenbanknotizen
E-Mail Verifizierungsfeld
Als nächstes muss Ihr
user
einemail_verified_at
-Feld enthalten, um den Zeitpunkt der Verifizierung der E-Mail-Adresse zu speichern. Standardmäßig umfasst die Datenmigration derusers
-Tabelle im Laravel-Framework dieses Feld bereits. Sie müssen also lediglich eine Datenbankmigration durchführen:php artisan migrate
Routes
Laravels
AuthVerificationController
-Klasse enthält den Sendebestätigungslink und Notwendige Logik zur E-Mail-Verifizierung. Durch Übergabe der Optionverify
an die MethodeAuth::routes
können Sie die erforderlichen Routen für diesen Controller registrieren:Auth::routes(['verify' => true]);
Protect Route
Routing-Middleware kann verwendet werden, um nur authentifizierten Benutzern den Zugriff auf bestimmte Routen zu ermöglichen. Laravel wird mit
verified
Middleware geliefert, die inIlluminateAuthMiddlewareEnsureEmailIsVerified
definiert ist. Da diese Middleware bereits beim HTTP-Kern Ihrer Anwendung registriert ist, müssen Sie sie lediglich an die Routendefinition anhängen:Route::get('profile', function () { // Only verified users may enter... })->middleware('verified');
View
Laravel generiert die für die E-Mail-Verifizierung erforderliche Ansichtsdatei, wenn Sie den Befehl
make:auth
ausführen. Der Speicherort der Ansichtsdatei lautetresources/views/auth/verify.blade.php
Sie können den Stil dieser Ansichten entsprechend Ihrer Anwendung frei anpassen.Nach der E-Mail-Verifizierung
Nach der E-Mail-Verifizierung wird der Benutzer automatisch zu
/home
weitergeleitet. Sie können die Sprungposition nach der Authentifizierung anpassen, indem Sie inVerificationController
eineredirectTo
-Methode oder ein Attribut definieren.protected $redirectTo = '/dashboard';
Ereignis
Laravel kann während des Verifizierungsprozesses Ereignisse auslösen. Sie sollten den Listener in
EventServiceProvider
registrieren:/** * 应用程序的事件监听器 * * @var array */ protected $listen = [ 'Illuminate\Auth\Events\Verified' => [ 'App\Listeners\LogVerifiedUser', ], ];
Dieser Artikel wurde erstmals veröffentlicht in LearnKu.com Website.
- Modell Bereiten Sie