代码之家  ›  专栏  ›  技术社区  ›  YI LU

如何确保用户在计算机进入睡眠状态时使用Web Worker注销

  •  0
  • YI LU  · 技术社区  · 10 月前

    我使用Web Worker设置一个setTimeout,在用户处于非活动状态10分钟后自动注销。然而,我遇到了一个问题,如果用户的计算机进入睡眠状态,包括Web Worker在内的所有进程都会停止运行。这意味着,即使会话应该已经过期,当计算机唤醒时,用户仍然保持登录状态。

    即使计算机进入睡眠状态并稍后醒来,是否有方法确保用户已注销?我如何有效地处理这种情况?

    任何建议或解决方案将不胜感激!

    1 回复  |  直到 10 月前
        1
  •  0
  •   Hao-Jung Hsieh    10 月前

    如果用户离开网络并注销的时间超过10分钟,记录下来怎么样?

    let blurTime;
    
    window.onblur = function() {
        blurTime = Date.now();
    };
    
    window.onfocus = function() {
        const focusTime = Date.now();
        const timeDifference = focusTime - blurTime;
    
        if (timeDifference > 10 * 60 * 1000) {
            logoutUser();
        }
    };