同一浏览器同一平台登录多个用户,提示用户切换为最新登录的用户

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

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

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

同一浏览器同一平台登录多个用户,提示用户切换为最新登录的用户,同一浏览器同一平台登录多个用户,提示用户切换为最新登录的用户,第1张

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

此时通过覆盖cookie来进行对比判断就行不通了,需要每个标签页都单独存储登陆的信息,cookie中存储最后登录者的信息,当旧的标签进行时,使用本标签的数据与cookie中存储的数据进行对比(单独存储,不进行覆盖);浏览器便签也单独存储数据使用到了sessionStorage;

sessionStorage 属性允许你访问一个 session Storage 对象。它与 localStorage 相似,不同之处在于 localStorage 里面存储的数据没有过期时间设置网页的基本标签有哪些,而存储在 sessionStorage 里面的数据在页面会话结束时会被清除。页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。在新标签或窗口打开一个页面时会在顶级浏览上下文中初始化一个新的会话,这点和 session cookies 的运行方式不同。

那一个域名下的sessionStorage 的数据会在同一网站的多个标签页之间共享吗?要解决这个问题,使用chrome测试了一下场景。

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

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

本文到此结束,希望对大家有所帮助!

关于作者:

生活百科常识网