当我使用
Auth::attempt();
验证用户的方法 我还将一些用户数据放入会话中,例如用户 ID、角色等。我将会话生命周期设置为零。因此,当用户选中“记住我”复选框时,即使在他关闭浏览器后,laravel 也会记住他。但是,当他关闭浏览器时,我丢失了会话数据。尽管用户已登录,但我不再有一些与他相关的会话数据。
我试过这个解决方案:
Route::get('/', function() {
if (Auth::check()) {
$user = Auth::user();
Session::put('user_id', $user->id);
Session::put('company_id', $user->company_id);
Session::put('is_super_admin', Company::isSuperAdmin($user->company_id));
Session::put('is_admin', $user->is_admin);
if (Session::get('is_super_admin')) {
return View::make('admin');
} else {
return View::make('client');
}
} else {
return View::make('login');
}
});
它有效。但是,这意味着每次登录的用户去某个我应该检查他是否登录的地方时,我都必须连接到数据库,获取用户数据并将其放入会话中,所以这是一个糟糕的解决方案。
但是,即使在浏览器关闭后,我如何才能记住我自己的用户会话详细信息?