php - 如何使 Laravel 中的特定会话无效(用户使用记住我功能)
问题描述
使用Laravel 5.1 和“文件”会话驱动程序,
我试图通过session_id
在数据库中记录他们的记录,为用户提供跟踪他们的会话并在他们希望的任何时候使他们无效的设施。对于数据库,我的意思是,我维护一个名为的表,该表与它们user_sessions
相关联(由 获得)。user_id
session_id
Session::getId()
因此,为了使会话无效,我尝试了以下代码,
$sessionId = Session::getId();
Session::setId($sessionId);
Session::invalidate();
对于用户不使用记住我功能的情况,它工作得非常好。
对于用户使用记住我功能的情况,上面的代码不起作用,因此,我另外尝试将remember_token
字段设置为在此答案null
中指定的此处,但是这样,用户的所有会话都会被破坏,包括当前会话。
解决方案
你可以简单地使用
use Illuminate\Support\Facades\Session;
Session::forget('YOUR_SESSION_ID');
如果要获取当前会话 ID:
Session::driver()->getId();
我希望它有帮助
推荐阅读
- python - 使用 Anaconda 从 Github 下载 Python 库
- python - 使用 Python,如何从 Google 搜索中抓取链接的描述性文本?
- c++ - 虚幻引擎 C++ 中的 TArray 浮动错误
- python - 为集成终端设置环境变量
- java - 当扫描仪位于输入的最后时如何使循环停止
- django - 当我尝试 git push 我的应用程序时,Heroku 使用了错误的 requirements.txt
- postgresql - PostgreSQL 密码更改
- r - 如何使用 slackr 改进 slack 消息的格式?
- html - 为什么“负边距和浮动应用元素”重叠?
- virtual-reality - 如何在点击热点时在 google vr 视图中添加弹出窗口。