Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Schritte zum Implementieren des Passwort-Resets in Laravel

Detaillierte Erläuterung der Schritte zum Implementieren des Passwort-Resets in Laravel

php中世界最好的语言
php中世界最好的语言Original
2018-05-18 14:30:332002Durchsuche

Dieses Mal werde ich Ihnen die Schritte zur Implementierung des Passwort-Resets in Laravel ausführlich erläutern. Was sind die Vorsichtsmaßnahmen für die Implementierung des Passwort-Resets in Laravel?

Einführung

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 eine andere der Anwendung zugewiesene URL im Browser , dieser Befehl generiert alles, was für die Benutzeranmeldung-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 einzubinden.

Reset-Token-Tabellenmigration generieren

Als nächstes muss die Tabelle zum Speichern von Passwort-Reset-Tokens erstellt werden. Laravel wird bereits mit dieser Tabelle geliefert. Die Migrationen werden in der Datenbank gespeichert /migrations-Verzeichnis. Sie müssen also nur die Migration ausführen:

php artisan migrate

Die Tabelle lautet „passwort_resets“:

Route

Laravel wird mit AuthForgotPasswordController und AuthResetPasswordController Controller geliefert (diese beiden Controller-Klassen werden automatisch durch den PHP-Artisan-Befehl make:auth geleitet generiert) bzw. zum Versenden von Link-E-Mails zum Zurücksetzen des Passworts und zum Zurücksetzen des Benutzerpassworts verwendet werden. Die zum Zurücksetzen des Passworts erforderlichen Routen wurden automatisch über den Befehl make:auth generiert:

php artisan make:auth

entsprechend der Routendefinition in der Authentifizierungsmethode von IlluminateRoutingRouter :

Ansicht

Wie beim Routing wird auch die zum Zurücksetzen des Passworts erforderliche Ansichtsdatei durchlaufen make:auth Der Befehl wird zusammen generiert und diese Ansichtsdateien befinden sich unter

<a href="http://www.php.cn/wiki/61.html" target="_blank Im Verzeichnis „>resource<code><a href=" http:>resource</a>s/views/auth/passwords s/views/auth/passwords “ können Sie die generierte Datei 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 darauf zugreifen Dieser Einstiegsweg. Das ForgotPasswordController, das mit dem Framework geliefert wird, enthält bereits die Logik zum Senden einer E-Mail mit einem Link zum Zurücksetzen des Passworts und ResetPasswordController enthält die Logik zum Zurücksetzen des Benutzerpassworts:

Enter Klicken Sie in der Registrierungs-E-Mail auf „Link zum Zurücksetzen des Passworts senden“ und ein Link zum Zurücksetzen des Passworts wird an die E-Mail-Adresse gesendet:

Wenn Sie die E-Mail-Adresse öffnen, erhalten Sie ein Passwort E-Mail wie folgt zurücksetzen:

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 Token zum Zurücksetzen des Passworts eine Stunde lang gültig Sie können die Gültigkeitsdauer ändern, indem Sie die Option „expire“ in der Datei config/auth.php ändern.

Angepasst

Angepasster Authentifizierungsschutz

in In der Konfigurationsdatei auth.php können Sie mehrere „Guards“ konfigurieren, um eine unabhängige Authentifizierung basierend auf Mehrbenutzertabellen zu implementieren. Sie können Ihre eigene verwenden, indem Sie die Guard-Methode auf dem integrierten ResetPasswordController-Controller überschreiben. Diese Methode gibt eine Guard-Instanz zurück:

use Illuminate\Support\Facades\Auth;
protected function guard()
{
 return Auth::guard('guard-name');
}

Benutzerdefinierter Passwort-Broker

In der Konfigurationsdatei auth.php können mehrere Passwörter konfiguriert werden kann verwendet werden, um den Passwort-Broker mehrerer Benutzertabellen zurückzusetzen. Ebenso können Sie den Broker Ihrer Wahl verwenden, indem Sie die Broker-Methoden in den integrierten ForgotPasswordController- und ResetPasswordController-Controllern überschreiben:

use 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. Die Klasse implementiert eine benutzerdefinierte E-Mail zum Zurücksetzen des Passworts Um diese Funktion zu implementieren, müssen Sie die Methode sendPasswordResetNotification im Benutzermodell überschreiben. In dieser Methode können Sie jede beliebige Benachrichtigungsklasse verwenden, um Benachrichtigungen zu senden. Der erste Parameter ist das Passwort-Reset $token:

/**
 * 发送密码重置通知.
 *
 * @param string $token
 * @return void
 */
public function sendPasswordResetNotification($token)
{
  $this->notify(new ResetPasswordNotification($token));
}

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Laravel verwendet Redis, um die Sitzungsschritte im Detail zu teilen

Detaillierte Erklärung der Verwendung von PHP rekursive Funktionsfälle

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zum Implementieren des Passwort-Resets in Laravel. 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