Möchten Sie diese Funktion schnell implementieren? Führen Sie einfach php artisan make:auth unter der neu installierten Laravel-Anwendung aus (wenn Sie diesen Befehl bereits ausgeführt haben, können Sie ihn ignorieren) und besuchen Sie dann http://your-app.dev/register oder einen anderen der Anwendung zugewiesenen Befehl im Browser-URL, dieser Befehl generiert alles, was für die Benutzeranmeldung und -registrierung erforderlich ist, einschließlich des Zurücksetzens des Passworts!
Die meisten Webanwendungen bieten die Funktion zum Zurücksetzen von Passwörtern für Benutzer, und Laravel stellt da keine Ausnahme dar und bietet praktische Methoden zum Versenden von Links zum Zurücksetzen von Passwörtern und zum Implementieren der Logik zum Zurücksetzen von Passwörtern, ohne dass Sie die Implementierung in jeder Anwendung selbst wiederholen müssen.
Hinweis: Bevor die von Laravel bereitgestellte Funktion zum Zurücksetzen des Passworts verwendet werden kann, muss das Benutzermodell die Eigenschaft IlluminateNotificationsNotifiable verwenden.
Datenbankbezogen
Bevor Sie beginnen, überprüfen Sie, ob das AppUser-Modell den IlluminateContractsAuthCanResetPassword-Vertrag implementiert. Natürlich implementiert Laravels eigenes AppUser-Modell diese Schnittstelle bereits und verwendet das Merkmal IlluminateAuthPasswordsCanResetPassword, um die zur Implementierung dieser Schnittstelle erforderlichen Methoden einzuschließen.
Migration der Reset-Token-Tabelle generieren
Als nächstes muss die Tabelle zum Speichern der Passwort-Reset-Tokens erstellt werden. Laravel wird bereits mit der Migration dieser Tabelle geliefert, die im Verzeichnis „database/migrations“ gespeichert ist. Sie müssen also nur die Migration ausführen:
php artisan migrate
Diese Tabelle enthält die Passwort-Resets:
Routen
Laravel wird mit den Controllern AuthForgotPasswordController und AuthResetPasswordController geliefert (diese beiden Controller-Klassen werden automatisch über den PHP-Handwerker-Befehl make:auth generiert), die zum Senden von Link-E-Mails zum Zurücksetzen des Passworts bzw. zum Zurücksetzen von Benutzerpasswörtern verwendet werden. Die zum Zurücksetzen des Passworts erforderlichen Routen wurden automatisch über den Befehl make:auth generiert:
php artisan make:auth
Die entsprechende Route ist in der Authentifizierungsmethode von IlluminateRoutingRouter definiert:
Ansicht
Wie beim Routing werden auch die zum Zurücksetzen des Passworts erforderlichen Ansichtsdateien über den Befehl make:auth generiert. Diese Ansichtsdateien befinden sich in
Im Verzeichnis resources/views/auth/passwords können Sie die generierten Dateien nach Bedarf ändern.
Passwort zurücksetzen
Nachdem Sie die Route und Ansicht zum Zurücksetzen des Benutzerpassworts definiert haben, müssen Sie nur noch über /password/reset im Browser auf diese Eingaberoute zugreifen. Der mit dem Framework gelieferte ForgotPasswordController enthält bereits die Logik zum Versenden von Link-E-Mails zum Zurücksetzen des Passworts, und der ResetPasswordController enthält die Logik zum Zurücksetzen von Benutzerpasswörtern:
Geben Sie die Registrierungs-E-Mail ein und klicken Sie Passwort zurücksetzen senden Legen Sie den Link fest und ein Link zum Zurücksetzen des Passworts wird an die E-Mail gesendet:
Wenn Sie die E-Mail öffnen, erhalten Sie eine E-Mail zum Zurücksetzen des Passworts so:
Klicken Sie auf die Schaltfläche „Passwort zurücksetzen“, um die Seite zum Zurücksetzen des Passworts aufzurufen:
Sie können Ihr Passwort zurücksetzen nachdem Sie das Formular ausgefüllt und abgeschickt haben.
Nachdem das Passwort zurückgesetzt wurde, meldet sich der Benutzer automatisch bei der Anwendung an und wird zu /home weitergeleitet. Sie können den Weiterleitungslink nach einem erfolgreichen Zurücksetzen des Passworts anpassen, indem Sie das Attribut „redirectTo“ von ResetPasswordController definieren:
protected $redirectTo = '/dashboard';
Hinweis: Standardmäßig ist das Zurücksetzen des Passworts das Token gültig für eine Stunde. Sie können die Gültigkeitsdauer ändern, indem Sie die Option „expire“ in der Datei config/auth.php ändern.
Benutzerdefiniert
Benutzerdefinierter Authentifizierungsschutz
In der Konfigurationsdatei auth.php können mehrere „Wächter“ konfiguriert werden, um eine unabhängige Authentifizierung basierend auf Mehrbenutzertabellen zur Authentifizierung zu implementieren , können Sie den Guard Ihrer Wahl verwenden, indem Sie die Guard-Methode auf dem integrierten ResetPasswordController-Controller überschreiben, der eine Guard-Instanz zurückgibt:
use Illuminate\Support\Facades\Auth; protected function guard() { return Auth::guard('guard-name'); }
Benutzerdefinierter Passwort-Broker
In der Konfiguration In der Datei auth.php können Sie mehrere Passwörter konfigurieren, die zum Zurücksetzen des Passwort-Brokers mehrerer Benutzertabellen verwendet werden sollen. Ebenso können Sie Ihre Broker-Methode verwenden, indem Sie die integrierten Controller ForgotPasswordController und ResetPasswordController überschreiben:
verwenden Sie IlluminateSupportFacadesPassword;
/** * 获取密码重置期间所使用的broker. * * @return PasswordBroker * @translator laravelacademy.org */ protected function broker() { return Password::broker('name'); }
Benutzerdefinierte E-Mail zum Zurücksetzen des Passworts
Sie können die Benachrichtigung, die den Link zum Zurücksetzen des Passworts an den Benutzer sendet, einfach bearbeiten. Um dies zu implementieren, implementiert die Klasse eine benutzerdefinierte E-Mail zum Zurücksetzen des Passworts Funktion müssen Sie die sendPasswordResetNotification-Methode im Benutzermodell überschreiben. In dieser Methode können Sie jede beliebige Benachrichtigungsklasse verwenden, um Benachrichtigungen zu senden. Der erste von dieser Methode empfangene Parameter ist das Passwort-Reset $token:
/** * 发送密码重置通知. * * @param string $token * @return void */ public function sendPasswordResetNotification($token) { $this->notify(new ResetPasswordNotification($token)); }
Verwandte Empfehlungen:
Methode zum Zurücksetzen des MySQL-Root-Passworts vergessen
Drei Schritte zum Zurücksetzen des MySQL-Root-Passworts
Methode zum Zurücksetzen des Root-Benutzerpassworts der MySQL-Datenbank vergessen_MySQL
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Funktion zum Zurücksetzen des Laravel-Passworts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!