AuthController 内 use 了 AuthenticatesAndRegistersUsers,
AuthenticatesAndRegistersUsers 又 use 了 AuthenticatesUsers,
所以登录验证的入口方法为AuthenticatesUsers->login(Request $request)
先使用AuthenticatesUsers->validateLogin(Request $request)判断登录数据的完整性。
判断是否使用( **默认使用 **)了 ThrottlesLogins的trait
,这个 trait 的作用就是对用户多次登录失败的情况进行处理的,登录失败次数超过5次会被锁 60s。
对于被 ThrottlesLogins 锁住的情况进行处理 获取验证登录需要的信息,
默认需要的字段为 AuthenticatesUsers->loginUsername() 和 password。
使用AuthenticatesUsers->getGuard(),
获取Guard,Guard的作用就是具体验证登录的。
AuthController 默认是没有设置的。
这个Guard是可以在config/auth.php里面配置的。默认为session
使用Guard的attempt(array $credentials = [], $remember = false, $login = true) 方法验证。
如果要定义自己的Guard,
建议直接继承SessionGuard,然后覆盖相应需要自定义的逻辑方法。
或者更暴力一点,直接在AuthController
里面定义一个public function login(Request $request)方法。
** 分享 ⋅ dongyuhappy ⋅
网友评论