laravel5.5 自带的忘记密码邮箱找回功能小记

前沿: 看了半天登录注册,然后是这个忘记密码,有点头晕,只能说确实很菜。

1. 执行php artisan route:list 查看当前所有路由,可以发现点击忘记密码时候执行的是ForgotPasswordController控制器中的showLinkRequestForm方法,打开了对应视图。

2. 输入邮箱后点击发送邮件,执行的是ForgotPasswordController控制器中的sendResetLinkEmail方法

控制器很干净,那方法应该是在引用的trait中了,打开SendsPasswordResetEmails这个trait,方法均在其中。

3. 可以看到在sendResetLinkEmail方法中先对输入的邮箱进行了验证,然后发送邮件,再根据发送邮件返回的状态,执行对应的操作。

4. 查看broken方法,发现其引用了Password类并且返回的是\Illuminate\Contracts\Auth\PasswordBroker接口实例(这个说法不知道对不对)

查看Password类发现

查看发现\Illuminate\Auth\Passwords\PasswordBroker类继承\Illuminate\Contracts\Auth\PasswordBroker接口,顺利找到了

sendResetLink方法,参数便是我们的输入的邮箱。

   

5. 在sendResetLink方法中先根据邮箱获取用户数据,验证用户是否存在,然后执行了邮件发送

6. 仔细查找父类以及引用的trait就可以发现我们想要的方法

至此整体思路便大概理清楚了,剩下的我也还模糊,有待继续深究。

时间: 2024-10-06 05:25:16

laravel5.5 自带的忘记密码邮箱找回功能小记的相关文章

django 开发忘记密码通过邮箱找回功能

一.流程分析: 1.点击忘记密码====>forget.html页面,输入邮箱和验证码,发送验证链接网址的邮件====>发送成功,跳到send_success.html提示 2.到邮箱里找到验证链接网址,访问重设密码网址reset.html===>重设密码提交数据,成功则返回首页,失败则返回错误信息 二. 1.users/forms.py文件中 from django import forms from captcha.fields import CaptchaField .......

java web实现 忘记密码(找回密码)功能及代码

(一).总体思路 (二).部分截图 (三).部分代码 (一).总体思路: 1.在 找回密码页面 录入 姓名.邮箱和验证码,录入后点击[提交]按钮,此时发送一封邮件,邮件中带有加密后的链接. 2.点开 邮件中链接,解密并判断链接是否有效,验证通过后 到 修改密码页面. 3.在修改页面中 录入新密码, 点击[修改按钮]修改密码,操作完成. (二).部分截图: (三).部分代码: 代码1(对应上面总体思路1):此处关键是 生成加密链接,而且此链接 参数需要在浏览器中get方式传递,不能支持“+”,"/

宝塔控制面板忘记密码怎么找回?

如果是忘记了默认密码 可以输入以下命令回车找回默认初始密码(默认账号admin) cat /www/server/panel/default.pl1 如图紫框即初始默认密码 也可以通过重置密码的方式来解决(其中"新密码"即你要改的密码) cd /www/server/panel && python tools.pyc panel 新密码1 紫框即你要修改的密码 红框即面板账户 原文地址:http://blog.51cto.com/xiaogongju/2083920

Linux Centos7 Mysql 忘记密码怎么找回密码

1,跳过数据库权限验证 mysqld --skip-grant-tables --user=mysql & 2, systemctl restart mysqld 正常情况是起不来 的等个大概10秒ctrl + c终止 3,输入mysql 即可进入 4,修改新密码 UPDATE mysql.user SET authentication_string=password('new_password') WHERE user='root' AND host='localhost'; 5,刷新授权表

php通过邮箱找回密码

很久没有写过博客了,现在我要重新开始记录,工作中遇到的一些问题,并将其记录下来最为经验的积累. --------------------回归正题----------------------- 很多网站,只要有用户注册,就必然会遇到用户登陆时忘记密码的情况,常用的找回密码的方式有两种,一种是通过发送短信验证码,另一种是通过发送连接到邮箱,打开连接通过验证后跳转到重置密码界面. 短信认证的方法,之前写过一篇jsp版本的.通过短信找回密码. 思路十分简单,通过随机生成6位字符验证码,然后将其写入数据库

安全系列之一:忘记密码

在很多Web网站中,有一项功能是忘记密码,不同网站对忘记密码的策略有自己的一套方案.但是目前却缺少一个工业标准实现一个忘记密码功能,导致的问题就是有可能在某些流程中出现漏洞,被hacker盗取账号. OWASP作为Web安全公认的组织,在这里提出了自己的标准.下面是它的几个步骤.最后会用支付宝作为例子分析一遍. 博客园的排版不是很好,同样的文章在我的github上查看,排版比较好: https://zebinlin.github.io/blogs/forgot-password-cheat-sh

转:java 帐号激活与忘记密码 实例

原文链接:http://endual.iteye.com/blog/1613679 一.帐户激活 在 很多时候,在某些网站注册一个用户之后,网站会给这个用户注册时填写的email地址发送一封帐户激活邮件,这封邮件的内容就是一个激活帐户的链接和一段 简短的文字描述,如果用户没有去邮箱将帐户激活,可能在使用网站的某些功能时就会受到限制,比如不能发贴.下载资料.评论等限制.这么做的原因应该是为了 保证帐户的安全性和邮箱的有效性,以后网站如果有什么活动.资讯或系统安全通知等,可以在第一时间通知到用户.比

JavaMail学习笔记(七)、帐号激活与忘记密码 实例(zhuan)

一.帐户激活 在很多时候,在某些网站注册一个用户之后,网站会给这个用户注册时填写的email地址发送一封帐户激活邮件,这封邮件的内容就是一个激活帐户的链接和一段简短的文字描述,如果用户没有去邮箱将帐户激活,可能在使用网站的某些功能时就会受到限制,比如不能发贴.下载资料.评论等限制.这么做的原因应该是为了保证帐户的安全性和邮箱的有效性,以后网站如果有什么活动.资讯或系统安全通知等,可以在第一时间通知到用户.比如我在奇艺视频网站注册一个帐号之后,它就会往我注册时填写的邮箱中发一封帐户激活的邮件,邮件

JavaMail学习笔记(七)、帐号激活与忘记密码 实例

http://blog.csdn.net/xyang81/article/details/7727141 一.帐户激活 在很多时候,在某些网站注册一个用户之后,网站会给这个用户注册时填写的email地址发送一封帐户激活邮件,这封邮件的内容就是一个激活帐户的链接和一段简短的文字描述,如果用户没有去邮箱将帐户激活,可能在使用网站的某些功能时就会受到限制,比如不能发贴.下载资料.评论等限制.这么做的原因应该是为了保证帐户的安全性和邮箱的有效性,以后网站如果有什么活动.资讯或系统安全通知等,可以在第一时