我需要在用户关闭浏览器或重定向到其他页面时终止 session 。 我可以看到以下实现此功能的选项:
- 不使用 session 登录。这不是我的情况,因为我必须进行很多更改,而且我还使用 session 来处理其他一些数据。
- 我可以使用这样的东西:
window.onunload = window.onbeforeunload = (function () {
...
})
并从此代码中调用清理 session 和执行注销的操作。 听起来很糟糕,但同样重要的是 - 此 JavaScript 代码仅适用于 IE。
- 我可以创建一些使用一些虚拟调用的讨厌代码,比方说每分钟一次,只是告诉服务器用户还活着。 但它真的很讨厌。它会在服务器上使用无用的负载,大量无用的调用,如果某些调用丢失(由于连接问题或其他原因),用户将注销。
还有其他选择吗?
最佳答案
您已经离开了 #4:什么都不做,让 session 在一段合理的时间(比如 20 分钟)后超时;如果他们在离开 20 分钟后尝试在该页面上做某事,只需显示一个页面告诉他们他们的 session 已过期并重新登录。这通常是最简单的选择。
如果您不想这样做,#3 确实是您唯一可行的选择,但每分钟一次可能有点矫枉过正。将 session 超时设置为 20 分钟,记住用户何时做了某事,如果他们空闲了(比如)15 分钟,则代表他们主动调用。但即便如此,我也会限制我这样做的次数,几个小时后你可能只想将他们重定向到登录页面。
关于javascript - 浏览器关闭时终止 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656982/