使用 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的主要内容,如果未能解决你的问题,请参考以下文章

如何判断会话是不是处于活动状态? [复制]

检测会话当前是不是处于活动状态并加入而不是开始新的会话

Python爬虫知识点——Session与Cookie

检查 WooCommerce 是不是处于活动状态以及使用的版本

检查窗口是不是处于活动状态

使用连接池后返回连接时如何检查连接是不是处于活动状态?