忘记密码与重设

2018-02-24 15:52 更新

模型与数据表

大多数的 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 更改 这个设定。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号