Laravel 4 Auth工作,但不保持登录状态


Laravel 4 Auth works but does not stay logged in

在我的Laravel 4应用程序中,我使用Auth功能。

我将登录表格提交给:

$data = array(
'email'     => Input::get('email'),
'password'  => Input::get('password')
);
if (Auth::attempt($data)) {
    echo 'SUCCESS!';
} 

这会输出SUCCESS,因此一切正常。但如果我下一次调用另一个方法,用户没有登录:

if (Auth::check()) {
echo "logged in";
}
else {
echo "not logged in";
}

此输出"未登录"。我试图添加true来尝试记住登录名,但这并没有什么不同。我有另一个运行Auth的Laravel应用程序,工作非常完美。

你知道原因是什么吗?

1.首次身份验证:

     if (Auth::attempt($data)) {
  return Redirect::to('admin'); 
}

2.然后将此复选框放在验证成功后重定向用户的页面上在这种情况下,说"admin"。

 if (Auth::check()) {
    echo "process";
    }
    else {
    return Redirect::to('login');
    }

我找到了解决方案。也许这可以帮助其他人:

调用Auth:attempt后,不得echo执行任何操作。你必须做一个redirect。这对我来说没有意义,但解决了问题。

Event::listen('auth.login', function($user)
{
    echo 'user logged in'; 
});

将其放置在Auth::attempt($data)之后并进行检查。