【发布时间】:2018-06-04 07:31:28
【问题描述】:
所以我最近对我正在建造的一个网站制定了验收标准:
- 用户在任何选项卡中登录该站点后,如果他们在新选项卡中导航到该站点,则他们必须已经登录
- 当用户退出任何选项卡时,他们必须立即退出所有选项卡
- 用户可以刷新页面并保持登录状态
- 关闭所有选项卡后,用户将退出并必须重新登录
- 我无权更改服务器代码(因此必须在客户端上完成)
我发现这个Question/Answer 真的很有帮助
查看此内容时,我必须排除 cookie,因为除了向服务器发出请求之外,选项卡 A 不会知道选项卡 B 已更改 cookie
所以我从上面的问题中提取了部分答案并开始使用本地存储并添加了一个事件来检查“登录”状态是否已更改,这允许我在一个选项卡中注销并立即登录out in another 不使用 setInterval 不断检查!耶
但是,如果您打开一个新标签并导航到您仍然登录的网站,我仍然会遇到所有标签关闭后的问题。
我尝试了一些可能的解决方案,例如设置一个打开会话的选项卡计数器,在选项卡关闭/打开时减少和增加(使用 window.onbeforeunload)。问题:只有一个选项卡处于活动状态时刷新站点会使您注销。我能想到的所有东西都有一个不起作用的极端情况。
【问题讨论】:
标签: javascript session tabs local-storage session-storage