【发布时间】:2013-05-29 14:40:21
【问题描述】:
我有一些 javascript 应该在一小时后注销你,但它有一些问题,首先,它不会在一个小时后注销你,通常大约 20 分钟,其次它不会总是 100% 的时间工作,比如说我让我的电脑通宵开着,有时我仍然登录(可能不在 PHP 会话中)并且在同一页面上。
我有一种感觉,如果屏幕关闭它会暂停 javascript 计数器。
代码是:
var delay = 3600000;
setTimeout(function(){ window.location = base_url + 'user/logout' }, delay);
有没有更好更可靠的方法来做到这一点?在银行网站上是如何做到的?
编辑:我并不是说这实际上会注销用户,当然那是在服务器端完成的,我只是希望页面在一个小时后自动重定向到登录页面,只是就像银行说的“您因不活动而被注销”。
这是因为我不想让敏感数据在一夜之间留在某人的屏幕上
【问题讨论】:
-
不能在服务器端定义一小时的会话超时时间吗?
-
我写的这个脚本将注销非活动用户:phpsnips.com/snip-39#.UaYUJbVwok0
-
会话确实终止了,IE,如果你转到另一个页面,你会被带回登录页面,但是这些页面上有敏感信息,所以我不希望有人不小心离开页面打开
-
自动注销不应在客户端。每次用户进行页面加载时,您都应该在服务器端检查它。检查 1. 是否有有效的会话,2. 在此页面加载之前发生最后一次页面加载的时间。
-
我使用了jquery插件idletimeout,它非常适合空闲屏幕。
标签: php automation logout