codecamp

忘记密码与重设

模型与数据表

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

HTTP 基本认证
第三方登陆认证
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

环境配置

系统服务

哈希

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }