如何在断开连接或浏览器关闭后注销用户?

时间:2017-07-27 09:31:14

标签: javascript angular typescript webpack single-page-application

我正在尝试使用我的网络应用程序来超时用户的解决方案。我目前正在使用ng2-idle,它似乎只能在活动窗口上工作而不是跟踪服务器端(角度服务器webpack)

除了上面的事件之外,我还需要处理这两个事件:

  • 在浏览器关闭
  • 关于连接丢失(停电,蓝屏等)

经过测试,关闭窗口后没有跟踪我的超时。 Ng2-idle有keepalive等模块,但我不确定如何使用它,如果它解决了我的问题

如果需要,我会提供代码

谢谢

2 个答案:

答案 0 :(得分:1)

主要问题是,客户端和服务器以无状态方式进行通信。这意味着如果用户断开连接,则没有人知道。

如果您的浏览器具有用于关闭或导航到其他站点的钩子功能,您可以使用该功能并发送注销请求。

相关的另一件事是会话到期,你应该使用它。如果您使用的是令牌,则只要会话有效(或者有效),您就需要将其列为黑名单。

断开是一个主要问题(会话过期试图以某种方式解决)。 如果注销断开连接非常重要,则可能需要使用websockets或http long polling。你需要发送一个心跳,如果它没有响应,一段时间后你会自动注销用户。

希望这些想法有所帮助。

答案 1 :(得分:0)

当你关闭浏览器会话时会破坏。所以你可以使用session注销。