【问题标题】:MEAN stack, PassportJS: detecting when client closes browser tabMEAN堆栈,PassportJS:检测客户端何时关闭浏览器选项卡
【发布时间】:2015-09-20 18:25:30
【问题描述】:

我有一个使用护照进行本地身份验证的网络服务器(Nodejs+express+护照)。有谁知道当用户关闭浏览器选项卡时是否会发生某种回调?我希望能够检测到这一点,因为我正在尝试为那些没有明确注销(即通过单击注销)的用户保存注销时间戳。

谢谢!

【问题讨论】:

    标签: node.js express passport.js mean-stack passport-local


    【解决方案1】:

    我会要求您先检查有关 SO 的问题,但我认为无法按照您尝试的方式进行操作。好吧,检查这些链接:how to run code on window close or refreshhow to detect it was close

    基本上你不能。这是许多应用程序向用户显示“上次登录时间”而不是注销时间的原因之一,看看这是否适合您。

    关于保存用户的注销时间:我想说根本不存储该值。应根据配置允许会话过期:即​​使长时间保持不活动状态,用户也可以注销。此类用户的注销时间可以稍后根据他们的最后活动时间(当您刷新用户的会话计时器时,您可以将其存储在每个页面加载/调用服务器上)和会话超时值来计算。现在可以在用户下次登录时或使用后台进程时计算。

    【讨论】:

      【解决方案2】:
      • 您可以存储用户的lastActivityDate,并假设某用户在 xx 分钟后被视为离线。

      • 您可以尝试在窗口卸载时执行 ajax 调用,但如果用户有两个打开的页面,而他关闭了一个,则数据将为 false。也不确定请求是否到达服务器。

      • 您可以为会话设置一个非常短的过期时间,并在页面打开时执行 ajax 常规 ping 以保持会话打开。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-11
        • 1970-01-01
        • 2014-02-09
        • 2020-09-25
        • 2015-12-27
        • 1970-01-01
        相关资源
        最近更新 更多