在Laravel 5.4中,方法'受保护的函数验证(Request $ request,$ user)'如何工作?

时间:2017-05-25 07:18:27

标签: php laravel laravel-5.4

在Laravel文件src \ illuminate \ Foundation \ Auth \ AuthenticatesUsers.php中,有一个方法如下 -

protected function authenticated(Request $request, $user)
    {
        //
    }

此方法似乎是将登录用户重定向到欢迎登录用户页面,但该方法为空白。当我在这个方法中插入'return'hello user';'然后页面显示“你好用户”。我想更改此方法以重定向到自定义网址,并想知道我将在哪里进行更改并研究与此方法相关的其余代码。我很难找到我正在寻找的正确代码。

编辑:上述方法在此方法中用于三元代码中的同一文件中。我想弄清楚它们是如何协同工作的 -

protected function sendLoginResponse(Request $request)
    {
        $request->session()->regenerate();

        $this->clearLoginAttempts($request);

        return $this->authenticated($request, $this->guard()->user())
                ?: redirect()->intended($this->redirectPath());
    }

1 个答案:

答案 0 :(得分:1)

这是因为处理该方法的类是继承trait .. 如果您想在成功登录时获得自定义功能..您可以做的就是不使用laravel登录功能..您可以使用Auth门面进行自己的登录..

例如

在您的LoginController中

function myOwnLogin(Request $request)
{
    $credentials= $request->only('username', 'password');
    if(Auth::attempt($appGrantCreds))
    {
        // in this block the user is already authenticated using username and password ..
        // so you can do your functionality here and whatsoever
    }
    else
    {
        // do your functionality for unsuccessful login
    }
}

也不要忘记设置$redirectTo = '/yourDesiredRoute';