laravel 自带重置密码源码分析

 

上面是 laravel 重置密码的逻辑控制器 已经帮我处理好了..很方便 我们一步一步的分析

1.App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  这个是表单模板路由

 

 这个控制 看上去东西很少.一个构造方法  还有一个trait  这个中间件的作用 就是防止已经登录的用户访问这个路由   我们看一下逻辑

 

先到kernel文件找到guest中间件  对应的实际的中间件类

 

 看到没 就是判断的 用户是否已经登录  已经登录直接跳转到首页 。这个中间件  也常用来限制已经登录的用户还能访问登录页面的情况 加上这个中间件就可以了.

我们看上面那个trait类吧

 

 这就是显示重置密码的表单的路由  没啥好说的

 

 这个是实际发送邮箱验证的路由

$this->validateEmail($request); 就是验证参数 

看第二句 broker是啥。。。。

 

 这是一个facade  我们找到对应的类

 

 

 

 找到了  是对应PasswordBrokerManager 这个类

 

 

\Illuminate\Contracts\Auth\PasswordBroker 我们看下返回值  目测是返回一个实现这个接口的类


 

 

 

 

$this->resolve($name) 看这个

 

 

 

 看auth.php

 

 

$this->createTokenRepository($config), 看这个

 

 

$this->app['auth']->createUserProvider($config['provider'] ?? null)  这个返回的用户privier



PasswordBroker看这个类

 

 

 

 绕了一大圈  是这个方法

 

 

 

 

看上去  每次发送重置令牌之前 先删除 旧的重置令牌 然后 重新生成一个  然后再发

 

 

 这个是消息通知

 

 

 

 


 

 

 哈哈  我发现laravel的代码  就是走着走着 会迷路

 

 回到发送代码    处理响应

发送的逻辑的差不多 就这样了....

 

posted @ 2021-01-18 13:10  天梯小蔡  阅读(176)  评论(0编辑  收藏  举报