MEAN堆栈,PassportJS:检测客户端何时关闭浏览器选项卡

时间:2015-07-03 03:16:10

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

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

谢谢!

2 个答案:

答案 0 :(得分:0)

我会先请你检查SO上的问题,但我认为没办法按照你的方式去做。好吧,请查看以下链接:how to run code on window close or refreshhow to detect it was close

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

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

答案 1 :(得分:0)

  • 您可以存储用户的 lastActivityDate ,并假设用户在xx分钟后被视为离线。

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

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