[英]Killing session when browser is closing
我需要在用户关闭浏览器或重定向到其他页面时终止会话。 我可以看到实现此功能的以下选项:
window.onunload = window.onbeforeunload = (function () {
...
})
从此代码调用清除会话并执行注销的操作。 听起来很讨厌,但同样重要的是 - 这个JavaScript代码只适用于IE。
还有其他选择吗?
你已离开#4:不要做任何事情,在一段合理的时间后(例如,20分钟)让会议超时; 如果他们在离开20分钟后尝试在该页面上做某事,只需显示一个页面告诉他们他们的会话已经过期并再次登录。 这通常是最简单的选择。
如果你不想这样做,#3真的是你唯一可行的选择,但一次/分钟可能是矫枉过正。 将会话超时设置为20分钟,记住用户何时做了什么,如果他们闲置(比方说)15分钟,请代表他们进行主动呼叫。 但即使这样,我也会限制我做多少,几个小时后你可能只想将它们重定向到登录页面。
我认为这个答案是正确的方法:
在javascript中,如何从另一个浏览器窗口中唯一标识同一个基于cookied的sessionId的浏览器窗口
设置一个唯一的窗口ID:
window.windowIdClient = "{978d-478ahjff-3849-dfkd-38395434}"; //or another randomly generated id.
将windowId与ip-address和session-id一起存储在数据库中。 如果这三个不匹配,则用户退出。
另外,如果没有想到TJ Crowder的选择,我会自己使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.