Menu

9.3. 密码重设

密码重设

上一节我们完成了账户激活功能,接着让我们继续开发密码重设功能。由于很多常用的 Web 应用都会提供密码重设的功能,因此 Laravel 将此功能内置到了框架中,减少了很多开发成本。

不过即便我们要使用 Laravel 内置的重设密码功能,也需要知道在日常开发时,大多数 Web 工程师是如何为网站添加重设密码功能的。一般来说,密码重设的步骤如下:

  1. 用户点击重设密码链接并跳转到重设密码页面;
  2. 在重设密码页面输入邮箱信息并提交;
  3. 控制器通过该邮箱查找到指定用户并为该用户生成一个密码令牌,接着将该令牌以链接的形式发送到用户提交的邮箱上;
  4. 用户查看自己个人邮箱,点击重置密码链接跳转到重置密码页面;
  5. 用户在该页面输入自己的邮箱和密码并提交;
  6. 控制器对用户的邮箱和密码重置令牌进行匹配,匹配成功则更新用户密码;

了解其中的整个流程之后,接下来的开发就容易多了。

资源

在密码重设功能中,我们还会用到一个用来保存密码重置令牌的数据表,Laravel 已默认为我们生成好了该数据表。

database/migrations/2014_10_12_100000_create_p...

本文章首发在 Laravel China 社区

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
讨论数量: 38

WytheVan
点击 “发送密码重置邮件” 按钮后是怎么处理的?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
liuyangbb
重置密码链接为什么是 localhost 而不是 sample 呢?哪里出错了
3 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
Qcg
重置密码的链接为什么重复出现了多次域名?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
powercen
(session ('status') 在哪里定义?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
truesnow
页面中的错误验证太麻烦?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
哇喔
调用未定义的方法 notify()?
0 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
Lotus
route 函数的 absolute 参数是什么意思?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Buck323
啊星
User Model 里面的 sendPasswordResetNotification ( ) 在什么时候调用?
5 个点赞 | 8 个回复 | 问答 | 课程版本 5.5
seeker
点击【发送密码重置邮件】按钮后,报错??
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
Arnold19910326
为什么我的 laravel.log 里面的视图是这样的?
1 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
firstsight
我觉得可以增加一个密码重设成功的提示?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
lanmingzi
两个 use 的用法有什么差别?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
LiJie123
这个样式文件在哪里改啊?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
KevinJiao
密码更新操作的路由为何不用 PATCH 而是使用 POST?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
xiaobird
我怎么找不到 reset 这个方法?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
steven-su
ReflectionException (-1) Class auth.password does not exist
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
老好人
Martin567
求助,点击发送密码重置邮件后报错?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Kylin
如何发送到 email 中
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
chihokyo
密码修改成功后加个【您已修改成功】这个提示可行?
1 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
Flourishing
为啥我点击 log 里面的链接地址,浏览器弹出一堆窗口......
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
hustnzj
请教点击重置密码按钮后,email 是怎么传递到页面上去的?
0 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
JackZhang
找不到控制器里面的方法?笔记也没有说明
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
向大佬们学习
重置密码发送邮件时,出现错误 Swift_TransportException (501)
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
yujia_1994
为什么点击忘记密码会跳转到 /home
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
mirrorpen
找不到 notify 方法
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
laravel初探者
完全不需要定制 Laravel 密码重置邮件功能
1 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
dokiss
为什么要生成消息通知文件并且发布密码重置的 Email 视图
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
惊风破浪
ReflectionException (-1) Class auth.password does not exist
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.7
xunxiancoming
class auth.password does not exist
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
刻意练习,每日精进。
4
点赞
823
浏览
38
讨论