1

我有一些 JavaScript 应该在一小时后注销你,但它有一些问题,首先,它不会在一小时后注销你,通常大约 20 分钟,其次它并不总是工作 100 % 的时间,假设我让我的电脑通宵开机,有时我仍然登录(可能不在 PHP 会话中)并且在同一页面上。

我有一种感觉,如果屏幕关闭它会暂停 javascript 计数器。

代码是:

var delay = 3600000;
setTimeout(function(){ window.location =  base_url + 'user/logout' }, delay);

有没有更好更可靠的方法来做到这一点?它是如何在银行网站上完成的?

编辑:我并不是说这实际上会注销用户,当然这是在服务器端完成的,我只是希望页面在一个小时后自动重定向到登录页面,就像银行说“您已注销由于不活动”。

这是因为会有一些我不想在一夜之间留在某人的屏幕上的敏感数据

4

1 回答 1

1

您可以在窗口对象上附加焦点和模糊事件处理程序,以跟踪窗口是否获得或失去焦点。

此外,在超时后注销用户也是一个坏主意(可能存在用户活动、ajax 请求)。最好通过 ajax 请求在服务器端检查会话是否处于活动状态,并且仅当它过期时,删除文档内容并显示有关会话过期的消息的弹出窗口。

于 2013-05-29T15:08:05.760 回答