问题:如果我在两个设备(例如A和B)上以同一个用户身份登录,并且在一个设备(A)中使用我的应用程序,而另一个设备(B)仍然不活动。当会话在使用功能logout_on_timeout时到期时,设备B不会注销。
我正在尝试实现authlogic的logout_on_timeout特性,我成功地实现了它,但问题是在每个请求中都会更新用户的last_request_at属性,不管它登录的浏览器或设备。因此,如果我从移动和桌面登录相同的用户,并且其中一个设备是活动的,那么另一个设备也会保持活动状态,因为它使用来自用户的相同的共享last_request_at属性。
来自authlogic的参考代码: l
我试图理解睡眠对于来自同一台机器的多个请求是如何工作的。
例如,我想要在我的一个应用程序中跟踪用户登录和注销,我已经完成了下面的解释:
当用户尝试关闭/刷新当前浏览器时,会向浏览器发送ajax请求。我所做的是在页面卸载上绑定一个事件,它在服务器上发送一个ajax请求,在服务器上,我在会话中设置了会话时间戳值,并使用了睡眠(10),如下所示->
//sets the timestamp value
$session->timestamp = time();
//wait if another request arrives withing 10 second