我有一个网站,目前我正在使用 Javascript 的客户端上处理超时,因此我不会发出请求,我会注销用户,但我看到人们在 SO 上建议相同的方法,并且我假设用户打开了 2 个选项卡,就会发现其中存在很大的失误。
Tab 1:
www.MYSITE.com/welcome.php
Tab 2:
www.MYSITE.com/edit_profile.php
现在,如果用户在选项卡 2 上并且正在编辑配置文件,则选项卡 1 处于空闲状态,这意味着用户将被注销/显示警告(您处理空闲时间的方式)。
所以这似乎不一致,在我看来它应该在服务器端,我的方法正确吗?
最佳答案
一种可能是,
对于 Ajax,每当您向服务器发送任何请求时,您都可以在服务器上使用 isset($_SESSION['variable']) 检查 session 是否过期,并发送响应 SESSION_TIMEOUT
然后在 ajax 回调中检查此响应。
如果找到,则向用户显示消息“ session 已过期!” & 重定向到初始页面(可能是登录页面)。
关于javascript - 在 javascript 或服务器端处理 session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26082224/