我正在使用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。
答案 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。