Heim > Backend-Entwicklung > PHP-Tutorial > Implementierung des Laravel-Passwort-Resets in PHP

Implementierung des Laravel-Passwort-Resets in PHP

php中世界最好的语言
Freigeben: 2023-03-22 08:22:01
Original
1760 Leute haben es durchsucht

Dieses Mal werde ich Ihnen die Implementierung des Laravel-Passwort-Resets in PHP vorstellen. Was sind die Vorsichtsmaßnahmen für das Laravel-Passwort-Reset in PHP?

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 das Merkmal 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.

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');
}
Nach dem Login kopieren

Benutzerdefinierter Passwort-Broker

In der Konfigurationsdatei auth.php können Sie mehrere konfigurieren Passwörter, die zum Zurücksetzen des Passwort-Brokers mehrerer Benutzertabellen verwendet werden sollen. Ebenso können Sie den Broker Ihrer Wahl verwenden, indem Sie die Broker-Methoden in den integrierten Controllern ForgotPasswordController und ResetPasswordController überschreiben:

verwenden Sie IlluminateSupportFacadesPassword;

/**
 * 获取密码重置期间所使用的broker.
 *
 * @return PasswordBroker
 * @translator laravelacademy.org
 */
protected function broker()
{
  return Password::broker('name');
}
Nach dem Login kopieren

Benutzerdefinierte E-Mail zum Zurücksetzen des Passworts

Sie können den Link zum Zurücksetzen des Passworts einfach bearbeiten und senden. Implementieren Sie eine benutzerdefinierte E-Mail zum Zurücksetzen des Passworts für die Benachrichtigungsklasse des Benutzers. 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. Diese Methode Der erste empfangene Parameter ist das Passwort-Reset $token:

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

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Bitte achten Sie auf weitere spannende Artikel auf der chinesischen PHP-Website.

Empfohlene Lektüre:

PHP benutzerdefiniertes zweidimensionales Array-Sortierfunktionsarray

Detaillierte Erläuterung der serverseitigen API- und Schnittstellenentwicklung von PHP

Das obige ist der detaillierte Inhalt vonImplementierung des Laravel-Passwort-Resets in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage