使用 Session ID 检查会话是不是处于活动状态 - Laravel
Posted
技术标签:
【中文标题】使用 Session ID 检查会话是不是处于活动状态 - Laravel【英文标题】:Check if a session is active with Session ID - Laravel使用 Session ID 检查会话是否处于活动状态 - Laravel 【发布时间】:2018-06-29 10:52:23 【问题描述】:我正在从事一个需要执行以下操作的项目
一旦用户使用用户的数据库行登录,就保存会话 ID 当同一用户尝试登录其他计算机时,我应该检查用户数据库行中的会话 ID 是否处于活动状态,并根据会话活动状态进行某些操作请建议是否有任何功能可以在 laravel 中使用会话 ID 检查会话状态。 编辑:
考虑以下条款:
Session 1 > First login done by user in a computer
Session 2 > User tries to login in another computer
当用户尝试登录另一台计算机时,我尝试查看是否可以通过使用以下函数获取带有会话 ID 的会话变量
$request->session()->setId("SESSION_ID");
但是这样做,只有 Session 2 的 session id 发生了变化,但我无法获取与 Session 1 相关的数据。
【问题讨论】:
您可以编辑问题以显示您尝试过什么吗? 我尝试在网上搜索以查看是否有任何方法可以做到这一点.. 但我找不到任何关于此的答案.. @Antz_shrek 更新了我的答案 你能解决这个问题吗?我还想知道是否有办法检查给定会话是否仍处于活动状态?类似 session()->isActive(someId);会很好 【参考方案1】:如果你有 SESSION_ID,你可以使用 getHandler() 函数来获取 laravel 的会话。代码是:
$session = \Session::getHandler()->read(SESSION_ID);
如果$session等于null或为空,则表示laravel的session不存在或已过期,否则表示session仍处于活动状态
【讨论】:
以上是关于使用 Session ID 检查会话是不是处于活动状态 - Laravel的主要内容,如果未能解决你的问题,请参考以下文章