如何在Laravel中覆盖身份验证登录功能

时间:2018-06-26 19:57:05

标签: php laravel laravel-5

我需要重写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,我相信我应该重写它的这个功能。

在哪里可以找到它的实现?

2 个答案:

答案 0 :(得分:3)

我建议不要覆盖任何功能,而是创建一个新的guardprovider。查看config/auth.php以了解其定义。

然后,您可以将自定义防护设置为默认值,正常的身份验证流程将接管。

请参阅Adding Custom Guards

上的文档

答案 1 :(得分:0)

我刚刚更改了HomeController.php-使用“ guest”作为中间件而不是“ auth”。对于处于类似情况的任何人,这都是一个临时解决方案。

相关问题