在选项卡/窗口上可靠地注销关闭

时间:2019-03-07 13:29:31

标签: javascript angularjs

我正在Spring Boot + AngularJS应用程序中实现会话管理。 Spring处理会话-它是基于cookie的。

如何可靠地通知Spring应用程序用户已关闭浏览器窗口(将/logout发送到服务器并从浏览器中删除会话信息),而不是在刷新页面时通知用户? 我尝试了onbeforeunload事件,尽管它也是在刷新页面之前触发的。我还尝试了几种检查事件状态(e.clientX, e.clientY, event || window.event)的选项-就我而言(在最新的Chrome中),关闭和刷新之间没有区别。 我尝试使用sessionStorage,但不确定是否要基于HTML5进行安全保护-有人可以使用旧的浏览器。

目前,我已经实现了一个解决方案,该解决方案每5秒发送一次/session请求(无论如何它都会发送以检查会话是否还没有过期),并在Spring应用程序中保存计时。如果/session呼叫之间的间隔大于7秒,则会话无效,用户需要重新登录。在正常情况下,它可以正常工作,但是我可以想象,当网络上存在一些滞后时,它将注销用户。有没有可靠的跨浏览器解决方案?

0 个答案:

没有答案