一个浏览器登录两个账号的冲突问题

2019-12-05 14:47:01 +08:00
 cassidyhere

同一浏览器,在页面 1 登录账号 A 后,打开页面 2,然后在已登录的页面 2 退出账号 A,登录账号 B,这时回到页面 1.这时页面 1 显示的是 A 的内容,但登录的其实是 B。怎样可以在回到页面 1 的时候更新内容?或者其他解决冲突的办法?

2626 次点击
所在节点    程序员
18 条回复
shintendo
2019-12-05 14:50:47 +08:00
怎样可以在回到页面 1 的时候更新内容
-----------------------
F5……
cassidyhere
2019-12-05 14:53:20 +08:00
@shintendo 我不能让用户按 F5
cassidyhere
2019-12-05 14:54:21 +08:00
我不是用户,我是后端。。
wangsongyan
2019-12-05 14:57:58 +08:00
websocket 刷新
xiangyuecn
2019-12-05 14:58:05 +08:00
登录时往 localStorage 里面存用户名,页面打开第一时间把存储的用户名读取到 js 变量。然后监听 localStorage 事件,只要 js 中的用户名和存储的用户名不一致,立马 reload() 都不用带废话的😏😏😏
test3207
2019-12-05 14:59:16 +08:00
ws...
或者轮询...
都要前端配合,纯后端应该没法做吧...
hakono
2019-12-05 14:59:49 +08:00
页面 JS 脚本后台轮询,检测账号的登陆状态,如果检测到了登出或者用户更改的话就刷新
cnbattle
2019-12-05 15:01:28 +08:00
跟前端说啊 前端检测重新更新内容啊 前端的需求 /问题, 让后端处理... 0.0
levon
2019-12-05 15:01:38 +08:00
客户说要摘天上的星星,你也答应啰
BlackGrasshopper
2019-12-05 15:02:13 +08:00
document.hidden
BlackGrasshopper
2019-12-05 15:37:01 +08:00
document.addEventListener('visibilitychange', () => {
console.log(document.hidden)
})
Vegetable
2019-12-05 15:39:01 +08:00
需求有问题,让前端去解决
opengps
2019-12-05 15:40:09 +08:00
这问题哪都有,得看你框架是否所有接口都有统一的身份验证拦截了
Jrue0011
2019-12-05 15:42:16 +08:00
页面 1 虽然内容显示是 A 的,但是后续其他请求操作,后端难道不是根据此时的用户 B 来的吗
wangsongyan
2019-12-05 15:52:13 +08:00
@opengps 看着你的头像,笑出来了,哈哈哈哈
rioshikelong121
2019-12-05 15:59:10 +08:00
页面 2 Logout 的时候通过 storagechange 等事件,通知页面 1 也跳转回 Login 页面。
BlackGrasshopper
2019-12-05 16:10:33 +08:00
纯前端解决方案是切回当前页面的时候刷新下,或者请求后端接口获取服务器会话信息和浏览器信息做对比,判断是否为一用户,不是一用户当前页面数据肯定是无效了,直接刷新完事
```
//添加页面可见性改变事件
document.addEventListener('visibilitychange', () => {
//页面可见性,页面可见说明是切回当前页面
console.log(document.hidden);
})
```
wangyzj
2019-12-05 16:13:46 +08:00
客户说:“如果用你的系统的时候突然我的电脑死机了,怎么办?”
请回答

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/626208

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX