忘记密码与重设
最后更新于:2022-04-01 15:05:51
## 模型与数据表
大多数的 web 应用程序都会提供用户忘记密码的功能。为了不让开发者重复实现这个功能,Laravel 提供了方便的方法来发送忘记密码通知及密码重设的功能。
在开始之前,请先确认您的 User 模型实现了 Illuminate\Contracts\Auth\CanResetPassword接口。当然,默认 Laravel 的 User 模型本身就已实现,并且引入Illuminate\Auth\Passwords\CanResetPassword来包括所有需要实现的接口方法。
### 生成 Reminder 数据表迁移
接下来,我们需要生成一个数据库表来储存重设密码标志。Laravel 默认已经包含了这个迁移表,放在 database/migrations 的目录下。你所需要作的只有执行迁移:
`php artisan migrate`
## 密码重设控制器
Laravel 还包含了 Auth\PasswordController 其中包含重设用户密码的功能。甚至一些视图,可以让你直接开始使用!视图放在 resources/views/auth 目录下。你可以按照你的应用程序设计,自由的修改這些视图。
你的使用者会收到一封 e-mail,內含连接指向 PasswordController 中的 getReset 方法。这个方法会显示密码重设表单,允许用户重新设定密码。在密码重新设定完之后,用户将会自动登录到应用中,然后被重定向到 /home。你可以通过 PasswordController 中的 redirectTo 來定义重设密码后要重定向的位置:
`protected $redirectTo = '/dashboard';`
> 注意:默认情况下,密码重设 tokens 会在一小时后过期。你可以修改 config/auth.php 文件中的 reminder.expire 更改 这个设定。