在我的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)
之后并进行检查。