我需要在用户关闭浏览器或重定向到其他页面时终止会话。 我可以看到实现此功能的以下选项:
window.onunload = window.onbeforeunload = (function () {
...
})
从此代码中调用清除会话并执行注销的操作。 听起来很讨厌,但同样重要的是 - 这个JavaScript代码只适用于IE。
还有其他选择吗?
答案 0 :(得分:3)
你已离开#4:不要做任何事情,在一段合理的时间后(例如20分钟)让会议超时;如果他们在离开20分钟后尝试在该页面上做某事,只需显示一个页面告诉他们他们的会话已经过期并再次登录。这通常是最简单的选择。
如果你不想这样做,#3真的是你唯一可行的选择,但一次/分钟可能是矫枉过正。将会话超时设置为20分钟,记住用户何时做了什么,如果他们闲置(比方说)15分钟,请代表他们进行主动呼叫。但即使这样,我也会限制我做多少,几个小时后你可能只想将它们重定向到登录页面。
答案 1 :(得分:0)
我认为这个答案是正确的方法:
设置唯一窗口ID:
window.windowIdClient = "{978d-478ahjff-3849-dfkd-38395434}"; //or another randomly generated id.
将windowId与ip-address和session-id一起存储在数据库中。如果这三个不匹配,则用户退出。
此外,如果没有想到T.J.克劳德的选择,我自己使用它。