我正在使用 Web Worker 设置 setTimeout,该超时会在用户不活动 10 分钟后自动注销。但是,我遇到了一个问题,如果用户的计算机进入睡眠状态,包括 Web Worker 在内的所有进程都会停止运行。这意味着即使会话应该已过期,用户在计算机唤醒时仍保持登录状态。
有没有办法确保即使计算机进入睡眠状态并稍后唤醒,用户也可以注销?我该如何有效地处理这种情况?
任何建议或解决方案将不胜感激!
如果时间超过10分钟,记录用户离开网络并注销的时间如何?
let blurTime;
window.onblur = function() {
blurTime = Date.now();
};
window.onfocus = function() {
const focusTime = Date.now();
const timeDifference = focusTime - blurTime;
// 600,000 milliseconds equals 10 minutes
if (timeDifference > 600000) {
// Log out the user if more than 10 minutes have passed
logoutUser();
}
};