我正在使用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。
您将看到一个空白页面,而不是被重定向到'/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();
如果用户已登录,将返回true,并将被重定向到'/profile'。