• 欢迎来到本博客,希望可以y一起学习与分享

laravel的用户认证源码分析

PHP benz 12个月前 (06-26) 15次浏览 0个评论 扫描二维码
文章目录[隐藏]

路由

其实原文件不是这样写的,我只是把它抽了出来


原文件的路由写法

原路由的非常优雅,只需要调用Auth::routes();这行代码即可。
查看Auth::routes();的内容如下:

原来路由需要UiServiceProvider这个服务,接下来看看UiServiceProvider这个类

可以发现这是一个普通的服务注册流程,它其实对外提供的服务,是由实例化的new AuthRouteMethods提供的,AuthRouteMethods类的代码如下,才发现了真正路由

总的来说把路由规则写成一个AuthRouteMethods类,然后注册一个UiServiceProvider服务,通过UiServiceProvider对外提供路由规则的服务,这样实现了解耦。

1.登录与退出

登录控制器就几行代码就能实现用户的登录功能,其实是依靠AuthenticatesUsers这个Trait,这里包含了登录的整个流程

登录的核心方法是login方法,而存储用户信息的是调用guard()->attempt();

登录限流器

登录限流器,主要是调用系统的app(RateLimiter::class)限流器来实现的,通过添加系统事件event(new Lockout($request));来锁定请求。

重定向

RedirectsUserstrait是用来定义重定向的地址。

注册

注册的核心是RegistersUsers Trait

主要是执行了注册事件event(new Registered($user = $this->create($request->all())));

忘记密码

class ForgotPasswordController extends Controller
{
use SendsPasswordResetEmails;
}
主要的核心在SendsPasswordResetEmailsTrait

发送邮件的是Password::broker();sendResetLink(),是否发送成功。通过Password::RESET_LINK_SENT判断

重置密码

验证邮箱

确认密码


文章 laravel的用户认证源码分析 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!