9.3. 忘记密码

密码重设

上一节我们完成了账户激活功能,接着让我们继续开发密码重设功能。

一般来说,密码重设的步骤如下:

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

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

本节我们来开发 1~ 3,下一节开发 4~6 。

新增路由

routes/web.php

.

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

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

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
贡献者:2
讨论数量: 63

啊星
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
惊风破浪
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
brango
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
WytheVan
点击 “发送密码重置邮件” 按钮后是怎么处理的?
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
惊风破浪
本节重置密码的问题
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