我需要重写laravel的默认登录功能,但是我对在那里找到的代码感到困惑。我不明白laravel AuthenticatesUsers.php如何验证该用户存在于db中,然后对该用户进行验证。
我已经在 AuthenticatesUsers.php
中使用了此功能/**
* Attempt to log the user into the application.
*
* @param \Illuminate\Http\Request $request
* @return bool
*/
protected function attemptLogin(Request $request)
{
return $this->guard()->attempt(
$this->credentials($request), $request->filled('remember')
);
}
我想我需要在auth / LoginController.php内部覆盖此功能
但是我不明白它是如何工作的。 guard()
和attempt()
的实现位置,我想实际的动作就在那儿发生。我需要为登录添加其他条件。
任何人都了解laravel的默认登录方式如何工作?以及这两个功能guard()
和attempt()
,例如,在authenticatesUsers.php本身中未实现try,我相信我应该重写它的这个功能。
在哪里可以找到它的实现?
答案 0 :(得分:3)
我建议不要覆盖任何功能,而是创建一个新的guard
和provider
。查看config/auth.php
以了解其定义。
然后,您可以将自定义防护设置为默认值,正常的身份验证流程将接管。
上的文档答案 1 :(得分:0)
我刚刚更改了HomeController.php-使用“ guest”作为中间件而不是“ auth”。对于处于类似情况的任何人,这都是一个临时解决方案。