不同标签页同步用户登录状态
JavaScript localStorage Session 大约 621 字场景
- 用户
A
在标签页1
中登录; - 打开标签页
2
,退出登录并登录用户B
; - 切换回标签页
1
,此时从后端获取的数据都为用户B
的信息;
说明
因为都是用户自己操作不同账户进行登录登出,此问题仅需前端逻辑控制即可。
解决方法
方法一
- 在退出登录时在
localStorage
中写入相关字段标识已经退出登录了。 - 监听
window.onfucus
事件,当切换回标签页时,判断localStorage
是否有退出登录相关的字段,有就将页面重定向到登录页。
方法二
- 在退出登录时在
localStorage
中写入相关字段标识已经退出登录了。 - 监听
window.onstorage
事件,当写入localStorage
时,不用切换回标签页就能触发事件,判断是否登出并重定向到登录页。
window.onstorage = function (event) {
// if (event.storageArea === localStorage) {}
if (event.key === 'logout-event') { // 假设写入 localStorage 的登出事件的 key 是 logout-event
// ..
}
}
参考
How user will Logout from all open tabs automatically when user logs out in one of them
阅读 1556 · 发布于 2021-05-29
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Android EditText 软键盘回车键变成搜索键阅读 2817
-
PHP 压缩 HTML 代码阅读 1684
-
OpenJDK 与 AdoptOpenJDK 的区别阅读 2276
-
Java jcmd 命令查看堆中实例阅读 1533
-
Java 消除 if else 代码的几种方式阅读 2831
-
Spring Boot JPA 打印 SQL 语句及参数阅读 2817
-
Tomcat 禁止日志输出到 catalina.out阅读 4784
-
Keycloak 国际化之动态修改不同语言阅读 93
-
Java jcmd 命令获取运行中的 Java 进程阅读 1321
-
Docker 同步宿主机时区阅读 547