我使用Laravel 4和Auth :: attempt(),如下代码:
$cred = array(
'email' => Input::get('email'),
'password' => Input::get('password'),
'active' => 1, //user must be activated before
);
if (Auth::attempt($cred, false))
{
// the auth.attempt event will be fired
return Redirect::to(URL::action('Admin@index'));
}
它工作正常,但当我用命令
调用用户电子邮件时Auth::user()->email;
它总是返回Users表中的第一个用户,即使我已经使用其他用户的信用登录。
例如,如果我在DB中有多个用户,那么即使我发送user2或user3的信誉,它也总是返回user1。
答案 0 :(得分:0)
我可以想到两个可能导致这个问题的问题:
Auth::user();
访问用户会话以获取可以从中识别模型中用户的令牌,因此刷新会话并尝试使用以下命令登录其他用户:
Session::flush();
我想去数据库以确保一切都符合逻辑预期,看一下用户表的几行,特别是ID列和电子邮件。
我不认为这应该被视为一个直接的答案,而不是在哪里寻找以及可能导致问题的原因,希望它能与你合作!