Heim PHP-Framework Laravel So implementieren Sie die Funktion zum Zurücksetzen des Passworts in Laravel

So implementieren Sie die Funktion zum Zurücksetzen des Passworts in Laravel

Apr 21, 2023 am 10:05 AM

In modernen Webanwendungen ist das Zurücksetzen des Benutzerpassworts eine wesentliche Funktion. Ein gut konzipierter Prozess zum Zurücksetzen des Passworts kann nicht nur die Sicherheit des Benutzerkontos gewährleisten, sondern auch das Benutzererlebnis verbessern. Laravel ist ein beliebtes PHP-Webentwicklungs-Framework, das auch ein praktisches System zum Zurücksetzen von Passwörtern integriert. In diesem Artikel wird erläutert, wie Sie mit Laravel die Funktion zum Zurücksetzen des Passworts implementieren.

Environment -Vorbereitung

Schitieren Sie, bevor Sie beginnen, dass Sie die folgenden Installationen abgeschlossen haben:

  • Php 7.2 und höher
  • Composer 2 und über
  • Laravel 5.5 und höher

In

, wenn Sie es nicht installiert haben Dennoch kann Laravel über den folgenden Befehl im Terminal installiert werden:

composer create-project --prefer-dist laravel/laravel project-name
Nach dem Login kopieren

Prozess zum Zurücksetzen des Passworts

  1. Der Prozess zum Zurücksetzen des Passworts von Laravel basiert auf einer E-Mail-Benachrichtigung. Die Schritte sind wie folgt:
  2. Der Benutzer übermittelt die E-Mail-Adresse und die Link zur Anwendung, die das Passwort zurücksetzen muss.
  3. Die Anwendung sendet eine E-Mail mit einem Link zum Zurücksetzen an die Mailbox des Benutzers.
  4. Die Anwendung ermittelt, ob der Link abgelaufen und legal ist.
  5. Wenn der Link legal ist, wird auf der Seite ein Formular zur Eingabe eines Passworts angezeigt.
  6. Der Benutzer gibt ein neues Passwort ein.
  7. Die App setzt das Benutzerpasswort zurück.
Deshalb müssen wir jeden Schritt dieses Prozesses umsetzen.

Mail-Konfiguration

Zuerst müssen wir E-Mails in Laravel konfigurieren. Öffnen Sie die Datei .env und fügen Sie die folgende Konfiguration hinzu:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mxhichina.com
MAIL_PORT=25
MAIL_USERNAME=youremail@example.com
MAIL_PASSWORD=yourpassword
MAIL_FROM_ADDRESS=youremail@example.com
MAIL_ENCRYPTION=
Nach dem Login kopieren
.env 文件,在其中添加如下配置:
'from' => [
    'address' => env('MAIL_FROM_ADDRESS', 'youremail@example.com'),
    'name' => env('MAIL_FROM_NAME', 'Your Name'),
],
Nach dem Login kopieren

这里的配置需要根据您的实际情况进行修改,MAIL_DRIVER 指定了使用的邮件服务提供商,例如 smtpmailgunsendmail 等,这里我们使用了阿里云邮件服务提供商 smtp.mxhichina.com,并且需要填写您的邮箱用户名和密码。MAIL_FROM_ADDRESS 用于指定发送邮件的发送地址。

接下来,我们需要在 config/mail.php 文件中配置邮件发送选项,例如设置发件人名称和地址:

// Password Reset Routes
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
Nach dem Login kopieren

路由配置

现在,我们需要配置路由来处理密码重置操作。在 Laravel 中,我们可以使用自带的 Password 控制器来处理重置密码的逻辑。打开 routes/web.php 文件,添加以下路由:

<form method="POST" action="{{ route(&#39;password.email&#39;) }}">
    @csrf
    <div>
        <input type="email" name="email" value="{{ old(&#39;email&#39;) }}" required autofocus placeholder="请输入您的邮箱地址">
    </div>
    <div>
        <button type="submit">发送重置密码链接</button>
    </div>
</form>
Nach dem Login kopieren

这里我们在 Auth 中使用了两个控制器,分别是 ForgotPasswordControllerResetPasswordController,分别处理重置密码邮件发送和密码重置操作。

视图配置

接下来,我们需要添加视图来展示用户填写邮箱和密码的表单。我们可以使用类似以下代码片段的 Blade 模板代码实现:

<form method="POST" action="{{ route(&#39;password.update&#39;) }}" >
    @csrf
    <input type="hidden" name="token" value="{{ $token }}">
    <div>
        <label for="email-input">邮箱</label>
        <input type="email" name="email" value="{{ $email ?? old(&#39;email&#39;) }}" required autofocus>
    </div>
    <div>
        <label for="password-input">新密码</label>
        <input type="password" name="password" required>
    </div>
    <div>
        <label for="password-confirm-input">确认新密码</label>
        <input type="password" name="password_confirmation" required>
    </div>
    <div>
        <button type="submit">重置密码</button>
    </div>
</form>
Nach dem Login kopieren

在这个页面中,我们使用了一个表单来接受用户填写的邮箱地址,并且添加了一个发送按钮,点击这个按钮将会向该邮箱发送密码重置链接。

我们还需要添加另一个视图来允许用户输入新密码。类似以下代码片段可以用于实现一个这样的表单:

use Illuminate\Support\Facades\Password;

class ForgotPasswordController extends Controller
{
    use SendsPasswordResetEmails;
}

class ResetPasswordController extends Controller
{
    use ResetsPasswords;

    protected $redirectTo = '/home';

    public function showResetForm(Request $request, $token = null)
    {
        return view('auth.passwords.reset')->with(
            ['token' => $token, 'email' => $request->email]
        );
    }
}
Nach dem Login kopieren

这个表单需要用户填写新密码和确认密码,并且需要通过 $token$email 参数来验证重置链接是否合法。这些参数可以在 ResetPasswordController@showResetForm 中获取。

控制器逻辑

我们在路由中使用了两个控制器来处理密码重置操作,分别是 ForgotPasswordControllerResetPasswordController

ForgotPasswordController 提供了一个 showLinkRequestForm() 方法,用于展示用户填写邮箱地址的表单。另外一个方法 sendResetLinkEmail() 将会向用户提供的邮箱地址发送含有密码重置链接的邮件,其中使用了 Password::sendResetLink() 方法来处理重置链接的生成和发送。

ResetPasswordController 中的 showResetForm() 方法将会展示用户输入新密码的表单,如果重置链接不合法则会返回到邮件链接过期的提示页面。reset() 方法则处理了用户填写重置密码表单并提交的逻辑,其中使用了 Password::reset()Die Konfiguration hier muss entsprechend Ihrer tatsächlichen Situation geändert werden. MAIL_DRIVER gibt den verwendeten E-Mail-Dienstanbieter an . Zum Beispiel smtp, mailgun oder sendmail usw. Hier verwenden wir den Alibaba Cloud-E-Mail-Dienstanbieter smtp.mxhichina.com, und Sie müssen Ihren E-Mail-Benutzernamen und Ihr Passwort eingeben. <code>MAIL_FROM_ADDRESS wird verwendet, um die Absenderadresse für den E-Mail-Versand anzugeben.

Als nächstes müssen wir die E-Mail-Versandoptionen in der Datei config/mail.php konfigurieren, wie zum Beispiel den Namen und die Adresse des Absenders festlegen: rrreee

Routing-Konfiguration

    Jetzt brauchen wir um Route so zu konfigurieren, dass Vorgänge zum Zurücksetzen von Passwörtern verarbeitet werden. In Laravel können wir den integrierten Passwort-Controller verwenden, um die Logik zum Zurücksetzen von Passwörtern zu verwalten. Öffnen Sie die Datei routes/web.php und fügen Sie die folgenden Routen hinzu:
  1. rrreee
  2. Hier verwenden wir zwei Controller in Auth, nämlich ForgotPasswordController und ResetPasswordController übernimmt den E-Mail-Versand zum Zurücksetzen des Passworts bzw. das Zurücksetzen des Passworts.
  3. Ansichtskonfiguration
  4. Als nächstes müssen wir eine Ansicht hinzufügen, um das Formular anzuzeigen, in dem Benutzer ihre E-Mail-Adresse und ihr Passwort eingeben können. Um dies zu erreichen, können wir einen Blade-Vorlagencode verwenden, der dem folgenden Codeausschnitt ähnelt:
  5. rrreee
  6. Auf dieser Seite verwenden wir ein Formular, um die vom Benutzer eingegebene E-Mail-Adresse zu akzeptieren, und fügen eine Schaltfläche zum Senden hinzu Nachricht an die E-Mail-Adresse.

Wir müssen außerdem eine weitere Ansicht hinzufügen, damit der Benutzer ein neues Passwort eingeben kann. Ein Codeausschnitt ähnlich dem folgenden kann verwendet werden, um ein solches Formular zu implementieren:

rrreee

Dieses Formular erfordert, dass der Benutzer ein neues Passwort eingibt und das Passwort bestätigt, und erfordert den $token und $email-Parameter, um zu überprüfen, ob der Reset-Link legitim ist. Diese Parameter können in ResetPasswordController@showResetForm abgerufen werden.

Controller-Logik🎜🎜🎜Wir verwenden beim Routing zwei Controller, um Vorgänge zum Zurücksetzen von Passwörtern abzuwickeln, nämlich ForgotPasswordController und ResetPasswordController. 🎜🎜ForgotPasswordController stellt eine showLinkRequestForm()-Methode bereit, um ein Formular anzuzeigen, in das Benutzer ihre E-Mail-Adressen eingeben können. Eine andere Methode sendResetLinkEmail() sendet eine E-Mail mit einem Link zum Zurücksetzen des Passworts an die vom Benutzer angegebene E-Mail-Adresse. Die Methode Password::sendResetLink() wird zur Verarbeitung verwendet Link zurücksetzen. Konfigurieren Sie die Generierung und den Versand von Links. 🎜🎜Die Methode showResetForm() in ResetPasswordController zeigt dem Benutzer das Formular zur Eingabe eines neuen Passworts an. Wenn der Link zum Zurücksetzen ungültig ist, wird zum E-Mail-Link zurückgekehrt Ablaufaufforderungsseite. Die Methode reset() verwaltet die Logik, mit der der Benutzer das Formular zum Zurücksetzen des Passworts ausfüllt und absendet. Die Methode Password::reset() wird verwendet, um das Passwort des Benutzers zu aktualisieren zur Datenbank. 🎜rrreee🎜🎜Verwenden der Passwort-Reset-Funktion🎜🎜🎜Da wir nun die Implementierung der Passwort-Reset-Funktion in Laravel abgeschlossen haben, versuchen wir, die implementierte Funktion zum Zurücksetzen des Passworts zu verwenden: 🎜🎜🎜Öffnen Sie die Anmeldeseite der Anwendung. Klicken Sie auf „Passwort vergessen“; 🎜🎜 Geben Sie Ihre registrierte E-Mail-Adresse ein und klicken Sie auf die Schaltfläche „Passwort zurücksetzen senden“. 🎜🎜 Öffnen Sie Ihre E-Mail, suchen Sie den Link zum Zurücksetzen des Passworts und klicken Sie darauf die Schaltfläche „Senden“. 🎜🎜🎜Wenn alles gut geht, wurde Ihr Passwort erfolgreich zurückgesetzt! 🎜🎜🎜Zusammenfassung🎜🎜

In diesem Artikel stellen wir vor, wie man mit Laravel eine grundlegende Funktion zum Zurücksetzen des Passworts implementiert. In modernen Webanwendungen ist das Zurücksetzen von Passwörtern eine notwendige Funktion. Nur ein gut konzipierter und implementierter Prozess zum Zurücksetzen von Passwörtern kann die Sicherheit von Benutzerkonten und das Benutzererlebnis gewährleisten. Ich glaube, dass die Passwortsicherheit und das Benutzererlebnis des Benutzers verbessert werden, nachdem Sie die in diesem Artikel beschriebenen Techniken erlernt und die Funktion zum vollständigen Zurücksetzen des Passworts implementiert haben.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Funktion zum Zurücksetzen des Passworts in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1659
14
PHP-Tutorial
1258
29
C#-Tutorial
1232
24
Beispiel für Laravel -Einführung Beispiel für Laravel -Einführung Apr 18, 2025 pm 12:45 PM

Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.

Laravel -Benutzeranmeldungsfunktion Laravel -Benutzeranmeldungsfunktion Apr 18, 2025 pm 12:48 PM

Laravel bietet einen umfassenden Auth-Framework für die Implementierung von Benutzeranmeldungsfunktionen, einschließlich: Definieren von Benutzermodellen (eloquentes Modell), Erstellen von Anmeldeformularen (Blattvorlagen-Engine), Schreiben von Login-Controllern (Erben von Auth \ Logincontroller), Überprüfung von Login-Anfragen (Auth :: Versuch) Umleitung nach Anmeldung (Redirect). Darüber hinaus enthält das Auth -Framework auch Funktionen wie das Zurücksetzen von Kennwörtern, das Registrieren und Überprüfen von E -Mails. Weitere Informationen finden Sie in der Laravel -Dokumentation: https://laravel.com/doc

Laravel Framework Installationsmethode Laravel Framework Installationsmethode Apr 18, 2025 pm 12:54 PM

Artikelzusammenfassung: Dieser Artikel enthält detaillierte Schritt-für-Schritt-Anweisungen, um die Leser zu leiten, wie das Laravel-Framework einfach installiert werden kann. Laravel ist ein leistungsstarkes PHP -Framework, das den Entwicklungsprozess von Webanwendungen beschleunigt. Dieses Tutorial deckt den Installationsprozess von den Systemanforderungen bis zur Konfiguration von Datenbanken und das Einrichten von Routing ab. Durch die Ausführung dieser Schritte können die Leser schnell und effizient eine solide Grundlage für ihr Laravel -Projekt legen.

Laravel und das Backend: Logik der Webanwendungen mit Strom versorgen Laravel und das Backend: Logik der Webanwendungen mit Strom versorgen Apr 11, 2025 am 11:29 AM

Wie spielt Laravel eine Rolle in der Backend -Logik? Es vereinfacht und verbessert die Backend -Entwicklung durch Routing -Systeme, eloquentorm, Authentifizierung und Autorisierung, Ereignis und Zuhörer sowie Leistungsoptimierung. 1. Das Routing -System ermöglicht die Definition der URL -Struktur und die Anforderungsverarbeitungslogik. 2.Loquentorm vereinfacht die Datenbankinteraktion. 3. Das Authentifizierungs- und Autorisierungssystem ist für die Benutzerverwaltung geeignet. 4. Die Ereignis und der Hörer implementieren locker gekoppelte Codestruktur. 5. Leistungsoptimierung verbessert die Anwendungseffizienz durch Zwischenspeicherung und Warteschlange.

Wie man laravel lernt wie man laravel kostenlos lernt Wie man laravel lernt wie man laravel kostenlos lernt Apr 18, 2025 pm 12:51 PM

Möchten Sie das Laravel -Rahmen lernen, aber unter keinen Ressourcen oder dem wirtschaftlichen Druck leiden? Dieser Artikel bietet Ihnen ein kostenloses Lernen von Laravel und lehrt Sie, wie Sie Ressourcen wie Online -Plattformen, Dokumente und Community -Foren verwenden, um eine solide Grundlage für Ihre PHP -Entwicklungsreise zu schaffen.

Wie sehe ich die Versionsnummer von Laravel an? So sehen Sie die Versionsnummer von Laravel Wie sehe ich die Versionsnummer von Laravel an? So sehen Sie die Versionsnummer von Laravel Apr 18, 2025 pm 01:00 PM

Das Laravel-Framework verfügt über integrierte Methoden, um die Versionsnummer einfach zu sehen, um die verschiedenen Anforderungen der Entwickler zu erfüllen. In diesem Artikel werden diese Methoden untersucht, einschließlich der Verwendung des Befehlszeilen -Tools des Composers, der Zugriff auf .Env -Dateien oder das Erhalten von Versionsinformationen über PHP -Code. Diese Methoden sind für die Aufrechterhaltung und Verwaltung der Versionierung von Laravel -Anwendungen von wesentlicher Bedeutung.

Welche Versionen von Laravel gibt es? So wählen Sie die Version von Laravel für Anfänger aus Welche Versionen von Laravel gibt es? So wählen Sie die Version von Laravel für Anfänger aus Apr 18, 2025 pm 01:03 PM

In dem LaRavel Framework -Versionsauswahlhandbuch für Anfänger taucht dieser Artikel in die Versionsunterschiede von Laravel ein, um Anfänger bei der Entscheidung über fundierte Entscheidungen zwischen vielen Versionen zu unterstützen. Wir werden uns auf die wichtigsten Funktionen jeder Version konzentrieren, ihre Vor- und Nachteile vergleichen und nützliche Ratschläge geben, um Anfängern zu helfen, die am besten geeignete Version von Laravel auf der Grundlage ihrer Fähigkeiten und der Projektanforderungen auszuwählen. Für Anfänger ist die Auswahl einer geeigneten Version von Laravel von entscheidender Bedeutung, da sie ihre Lernkurve und ihre allgemeine Entwicklungserfahrung erheblich beeinflussen kann.

Der Unterschied zwischen Laravel und ThinkPhp Der Unterschied zwischen Laravel und ThinkPhp Apr 18, 2025 pm 01:09 PM

Laravel und ThinkPhp sind beide populäre PHP -Frameworks und haben ihre eigenen Vor- und Nachteile in der Entwicklung. In diesem Artikel wird die beiden Tiefe verglichen und ihre Architektur, Funktionen und Leistungsunterschiede hervorgehoben, um Entwicklern zu helfen, fundierte Entscheidungen auf der Grundlage ihrer spezifischen Projektanforderungen zu treffen.

See all articles