下面,我们再去准备一下处理找回密码的请求要用到的控制器。
使用 artisan 命令,可以去创建这个控制器。打开命令行工具 ... php artisan ... 使用 auth 的 reminders-controller ...
php artisan auth:reminders-controller
完成以后,会给我们创建一个控制器 ...
另外,我们还需要去在 routes.php 里面,添加一条路由 ...
(#返回),打开 app ... controllers ... 这里的 RemindersController.php 就是我们刚才使用命令创建的控制器 .
在这个控制器里有四个方法,分别可以处理重置密码的不同的请求。
getRemind ... 这个方法会返回一个视图 ... 在这个视图里面,我们可以去准备一个重置密码的表单 ... 在这个表单上,一般就是一个带邮件字段的表单元素 .. 还有一个提交按钮 ..
点击提交以后,这个请求会交给 postRemind 这个方法来处理 .. 这个方法验证用户输入的邮件,确定数据库里面有这个邮件地址,就会生成一个 token ,存储在数据库里面,然后往这个邮件地址里面发一个重置密码的链接 ... 这个链接上会包含存储的 token ...
用户点击这个重置密码的链接 ... 这个请求会由下面的 getReset 方法来处理 ... 如果链接里面的 token 没有什么问题,这个方法,会返回一个视图 ...
在这个视图上,应该就是用户用来重置密码的表单 ... 这个表单上要有一个隐藏的 token 字段 .. 这个字段的值会从这个方法里面发送到视图上 ...
还要有用户邮件,新的密码还有密码确认,最后还需要一个提交按钮...
提交更新密码的请求,会用 postReset 这个方法来处理 ...
这个方法要做的事,就是把用户重新设置的密码存储到数据库里面。
路由
下面,我们再去给这个控制器添加一个路由 ... 打开 routes.php ... 用 Route 类的 controller 方法 ... 添加一个 REST 类型的控制器 ...
Route::controller('password', 'RemindersController');
这样, 请求地址 password 斜线 remind ,就可以打开找回密码的表单 ... password 斜线 reset ... 就是显示重置密码的表单 ...