同一浏览器和同一平台登录多个账号,提示账号切换为最新登录的用户\或退出

本文探讨了在用户多登录状态下的浏览器标签页管理问题,分析了通过cookie存储token和账号名进行用户切换检测的失败原因。文章指出,由于sessionStorage在不同标签页间不共享,每个标签页可以独立存储登录信息。当检测到旧标签页的数据与cookie中的最新登录信息不符时,即可提示用户已切换。通过这种方法,实现了在浏览器多标签环境下准确提示用户切换的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


失败方案一:通过cookie存储两个token 在操作是进行对比,不同进行提示用户已切换


失败原因 : 同一用户多次登录token也是不相同的,不应该进行提示

失败方案二:存储两次登录获取到的账号名,在操作时进行对比,不同进行提示用户已切换


失败原因 : 当用户刷新浏览器时存储的cookie会进行覆盖,因此对比不出,无法提示用户


此时通过覆盖cookie来进行对比判断就行不通了,需要每个标签页都单独存储登陆的信息,cookie中存储最后登录者的信息,当旧的标签进行时,使用本标签的数据与cookie中存储的数据进行对比(单独存储,不进行覆盖);浏览器便签也单独存储数据使用到了sessionStorage;
sessionStorage 属性允许你访问一个 session Storage 对象。它与 localStorage 相似,不同之处在于 localStorage 里面存储的数据没有过期时间设置,而存储在 sessionStorage 里面的数据在页面会话结束时会被清除。页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。在新标签或窗口打开一个页面时会在顶级浏览上下文中初始化一个新的会话,这点和 session cookies 的运行方式不同。
那一个域名下的sessionStorage 的数据会在同一网站的多个标签页之间共享吗?要解决这个问题,使用chrome测试了一下场景。

当在一个a页面有sessionStorage时,这时新增一个标签并输入与a页面相同的url。新的标签里面打开的页面是没有另一个标签页面里面的sessionStorage时。也就是讲,新标签是新的会话。


这个样就实现多用户切换提示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值