Laravel身份验证不起作用

时间:2016-10-22 19:54:16

标签: php laravel laravel-5 laravel-5.2

我正在使用laravel 5.2,我在自定义身份验证方面遇到了问题。它不会记录用户。
在这里,您可以找到我的函数代码:

public function login(Request $request)
{
    $this->validateLogin($request);

    $email = $request->get('email');
    $user = User::where('email', $email)->first();

    if(! is_null($user))
    {
        if (Auth::login($user))
        {
            return redirect('/profile');
        }
    }
    else
    {
        $this->register($request);
    }
}

在Auth :: login的位置,我也尝试了函数尝试和检查,但没有任何工作......
它记录用户,但它显示一个空白页面,没有重定向到URL。

1 个答案:

答案 0 :(得分:1)

您看到的是空白页而不是重定向到'/ profile',因为您的第二个if条件永远不会为真

Auth::login($user)
即使用户已登录,

也永远不会返回null 所以基本上

if (Auth::login($user))
    {
        return redirect('/profile');
    }

这是因为在您的情况下永远不会满足条件。

你可以试试这个

public function login(Request $request)
{
    $this->validateLogin($request);

    $email = $request->get('email');
    $user = User::where('email', $email)->first();

    if(! is_null($user))
    {
        Auth::login($user);
        if (Auth::check())
        {
            return redirect('/profile');
        }
    }
    else
    {
        $this->register($request);
    }
}


Auth::check();
如果用户已登录并且将被重定向到“/ profile”,则

将返回true。