réinitialiser le mot de passe
Exécutez simplement php artisan make:auth
dans la nouvelle application Laravel, puis ouvrez http://your-app.test/register
dans le navigateur ou donnez-le-vous L'application se voit attribuer une URL arbitraire. Cette commande se chargera de mettre en place tout le système d'authentification, y compris la réinitialisation du mot de passe !
- La plupart des applications Web offrent aux utilisateurs la possibilité de réinitialiser leur mot de passe. Plutôt que de vous obliger à réimplémenter cette fonctionnalité dans chaque application, Laravel propose des moyens pratiques d'envoyer des rappels de mot de passe et d'effectuer des réinitialisations de mot de passe. {note} Avant d'utiliser la fonction de réinitialisation de mot de passe de Laravel, votre modèle utilisateur doit utiliser le trait
IlluminateNotificationsNotifiable
. Notes sur la base de données
Tout d'abord, vérifiez que votre modèle AppUser
implémente le contrat IlluminateContractsAuthCanResetPassword
. Bien entendu, le modèle AppUser
inclus dans le framework implémente déjà cette interface et utilise le trait IlluminateAuthPasswordsCanResetPassword
pour inclure les méthodes requises pour l'implémenter. AppUser
模型是否实现了 IlluminateContractsAuthCanResetPassword
契约。当然,框架中包含的 AppUser
模型已经实现了该接口,并且使用了 IlluminateAuthPasswordsCanResetPassword
trait t 来包含实现该接口所需的方法。
生成重置令牌的表迁移
接下来,必须创建一张数据表来存储密码重置令牌。该数据表的迁移已包含在 Laravel 应用的 database/migrations
目录中。 所以,你需要做的只是执行数据库迁移命令:
php artisan migrate
路由
Laravel 已在 AuthForgotPasswordController
和 AuthResetPasswordController
类中包含了发送密码重置链接电子邮件和重置用户密码的逻辑。所有执行密码重置所需的路由可以使用 Artisan 命令 make:auth
来生成:
php artisan make:auth
视图
当执行 make:auth
命令时,Laravel 会生成重置密码所需的所有视图。 这些视图位于 resources/views/auth/passwords
目录中。你可以根据你应用的需要随意修改这些视图。
重置密码后
一旦你定义了重置用户密码的路由和视图,你可以在浏览器中访问 /password/reset
这个路由来重置密码。框架中的 ForgotPasswordController
已包含发送密码重置链接电子邮件的逻辑,同时 ResetPasswordController
包含了重置用户密码的逻辑。
在重置密码后,用户将会自动登录并重定向到 /home
。 你可以通过在 ResetPasswordController
中定义一个 redirectTo
属性来自定义密码重置后重定向的位置:
protected $redirectTo = '/dashboard';
{note} 默认情况下,密码重置令牌会在一小时后过期。你可以通过
config/auth.php
文件中的密码重置expire
选项对此进行修改。
自定义
自定义身份验证看守器
在你的 auth.php
配置文件中,你可以配置多个「看守器」,可以用来定义多个用户表的身份验证行为。你可以自定义框架中的 ResetPasswordController
,通过重写该控制器中的 guard
Migration de table pour générer un jeton de réinitialisation
database/migrations
de l'application Laravel. Il vous suffit donc d'exécuter la commande de migration de base de données : use Illuminate\Support\Facades\Auth;protected function guard(){ return Auth::guard('guard-name'); }🎜🎜
AuthForgotPasswordController
et AuthResetPasswordController
. Tous les itinéraires requis pour effectuer une réinitialisation de mot de passe peuvent être générés à l'aide de la commande Artisan make:auth
: 🎜use Illuminate\Support\Facades\Password; /** * 获取在密码重置期间使用的代理。 * * @return PasswordBroker */ protected function broker(){ return Password::broker('name'); }🎜🎜
make:auth
, Laravel générera toutes les vues nécessaires pour réinitialiser votre mot de passe. Ces vues se trouvent dans le répertoire resources/views/auth/passwords
. Vous êtes libre de modifier ces vues en fonction des besoins de votre application. 🎜🎜🎜/password/reset
dans le navigateur pour réinitialiser le mot de passe. Le ForgotPasswordController
dans le framework contient déjà la logique pour envoyer l'e-mail du lien de réinitialisation du mot de passe, tandis que le ResetPasswordController
contient la logique pour réinitialiser le mot de passe de l'utilisateur. 🎜🎜Après avoir réinitialisé le mot de passe, l'utilisateur se connectera automatiquement et sera redirigé vers /home
. Vous pouvez personnaliser l'emplacement de redirection après une réinitialisation de mot de passe en définissant un attribut redirectTo
dans ResetPasswordController
: 🎜/** * 发送密码重置通知。 * * @param string $token * @return void */ public function sendPasswordResetNotification($token){ $this->notify(new ResetPasswordNotification($token)); }
🎜{note} Par défaut, la réinitialisation du mot de passe Le jeton de configuration sera expirer après une heure. Vous pouvez modifier cela via l'option de réinitialisation du mot de passe🎜🎜expire
dans le fichierconfig/auth.php
. 🎜
Observateur d'authentification personnalisé
🎜Dans votre fichier de configurationauth.php
, vous pouvez configurer plusieurs "observateurs", que vous pouvez utiliser pour définir le comportement d'authentification de plusieurs utilisateurs. tableaux. Vous pouvez personnaliser le ResetPasswordController
dans le framework pour utiliser la garde de votre choix en remplaçant la méthode guard
dans le contrôleur. Cette méthode devrait renvoyer une instance de garde : 🎜rrreee🎜🎜Proxy de mot de passe personnalisé
Dans votre fichier de configuration auth.php
, vous pouvez configurer plusieurs "proxys" de mot de passe qui peuvent être utilisés pour réinitialiser les mots de passe sur plusieurs tables utilisateur. Vous pouvez personnaliser ForgotPasswordController
et ResetPasswordController
dans le framework et utiliser le courtier de votre choix en remplaçant la méthode broker
dans le contrôleur : auth.php
配置文件中,你可以配置多个密码「代理」,可以用来重置多个用户表上的密码。你可以自定义框架中的 ForgotPasswordController
和 ResetPasswordController
, 通过重写控制器中的 broker
方法来使用你所选择的代理:
自定义密码重置邮件
你可以轻松地修改用于向用户发送密码重置链接的通知类。首先,重写 User
模型中的 sendPasswordResetNotification
方法。 在此方法中,你可以使用任何你所选择的通知类来发送通知。该方法接收的第一个参数是密码重置令牌 $token
rrreee