Fok*_*est 6 session laravel laravel-5
最近,我注意到我的 laravel 5 应用程序出现了一个非常令人不安的情况,我似乎无法弄清楚。在登录期间,我像这样在会话中设置了 user_type 变量
Session::put('is_supervisor', $user->is_supervisor);
Run Code Online (Sandbox Code Playgroud)
在我的 config/session.php 文件中,我有以下配置:
'lifetime' => 120,
'expire_on_close' => false,
Run Code Online (Sandbox Code Playgroud)
我还实现了记住我的功能。
我以主管用户身份登录,并选中了“记住我”。几个小时后,我关闭浏览器而不注销并再次启动,因为expire_on_close设置为 false 并记住我被选中,因此按预期登录了用户配置文件。但是,我注意到 is_supervisor 变量在会话中不再存在,所以我必须注销并再次登录才能让变量回到会话中。可能是什么问题呢?我使用文件作为我的会话驱动程序。
您需要了解发生了什么:您已将会话的生命周期设置为 120 分钟,这意味着 120 分钟后会话将被刷新。
该remember_me功能使用cookie。如果没有用户会话,Laravel 将检查 cookie,并在会话 cookie 仍然有效时重新创建会话。
我的问题是:为什么要将这些数据存储在会话中?如果您想检查用户是否是主管,只需执行即可if ($user->is_supervisor)。
如果函数内部发生一些数据库查询,is_supervisor则使用某种缓存机制。
| 归档时间: |
|
| 查看次数: |
4253 次 |
| 最近记录: |