密码重设

本教程最新版为 9.x,当前版本已放弃维护,请阅读最新版本!

密码重设

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

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

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

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

资源

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

database/migrations/2014_10_12_100000_create_p...

本文章首发在 LearnKu.com 网站上。

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

上一篇 下一篇
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 64

啊星
User Model 里面的 sendPasswordResetNotification ( ) 在什么时候调用?
5 个点赞 | 8 个回复 | 问答 | 课程版本 5.5
liuyangbb
重置密码链接为什么是 localhost 而不是 sample 呢?哪里出错了
3 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
chihokyo
密码修改成功后加个 [您已修改成功] 这个提示可行?
2 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
powercen
(session ('status') 在哪里定义?
2 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
CodeFarmer
完全不需要定制 Laravel 密码重置邮件功能
1 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
firstsight
我觉得可以增加一个密码重设成功的提示?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Lotus
route 函数的 absolute 参数是什么意思?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Arnold19910326
为什么我的 laravel.log 里面的视图是这样的?
1 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
hustnzj
请教点击重置密码按钮后,email 是怎么传递到页面上去的?
0 个点赞 | 8 个回复 | 问答 | 课程版本 5.5
哇喔
调用未定义的方法 notify()?
0 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
有没有人遇到了 Class auth.passwords does not exist 问题
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.8
LiJie123
这个样式文件在哪里改啊?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
yujia_1994
为什么点击忘记密码会跳转到 /home
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
Kylin
如何发送到 email 中
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
seeker
点击 [发送密码重置邮件] 按钮后,报错??
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
diehard5566
点击忘记密码一直无法导到该页面
0 个点赞 | 3 个回复 | 问答 | 课程版本 8.x
FirstBlood
Laravel 自带得 email 跳转问题
0 个点赞 | 3 个回复 | 问答 | 课程版本 6.x
jfpl
ReflectionException (-1) Class auth.password does not exist
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.7
xiaobird
我怎么找不到 reset 这个方法?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
lanmingzi
两个 use 的用法有什么差别?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
yyyyyy
点击重设密码后出现 404 报错?
0 个点赞 | 2 个回复 | 问答 | 课程版本 6.x
Adeljan
怎么更改邮箱收到的视图
0 个点赞 | 2 个回复 | 分享 | 课程版本 5.8
cyan
password.reset 这个路由名字是不能随便改的!
0 个点赞 | 2 个回复 | 分享 | 课程版本 5.8
firebyou
bug?账户没激活也可以密码重置
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
mirrorpen
找不到 notify 方法
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Flourishing
为啥我点击 log 里面的链接地址,浏览器弹出一堆窗口......
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
KevinJiao
密码更新操作的路由为何不用 PATCH 而是使用 POST?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
truesnow
页面中的错误验证太麻烦?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Qcg
重置密码的链接为什么重复出现了多次域名?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
stubborn-gaga
点击 “发送密码重置邮件” 按钮后是怎么处理的?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
xiaoyaoque
重置密码报错 Trying to get property 'headers' of non-objectv 解決方法
0 个点赞 | 1 个回复 | 分享 | 课程版本 6.x
HappyTeemo
users/create.blade.php 被更改了,不是没有注册视图了。
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.8
jfpl
本节重置密码的问题
0 个点赞 | 1 个回复 | 分享 | 课程版本 5.8
Cooperhush
为什么我点击忘记密码调到了 404 页面?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
anningri
重置密码提示:密码 两次输入不一致
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
xuanziDy
密码重置后,为什么不让用户重新登录?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
xunxiancoming
class auth.password does not exist
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
dokiss
为什么要生成消息通知文件并且发布密码重置的 Email 视图
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
JackZhang
找不到控制器里面的方法?笔记也没有说明
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Martin567
求助,点击发送密码重置邮件后报错?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
steven-su
ReflectionException (-1) Class auth.password does not exist
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
宋高峰
建议这一章出了问题的伙伴执行以下命令
0 个点赞 | 0 个回复 | 分享 | 课程版本 6.x
holyLight
验证邮箱的邮件能收到,但是重置密码的收不到?
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x
holyLight
email.blade.php 里的 session 是哪个方法写入的?
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.8
holyLight
email.blade.php 里的 $errors 是哪个 function 写入的?
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.8
chant
重设密码链接点开后 404???
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.8
wongvio
Laravel 内置的追回密码怎么修改最小位数呢?
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.7
mingzaily
怎么样设置重制邮件也是中文的
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.7