同一个浏览器,同一网站,登录两个用户,如果处理相同的PHPSESSID

我们开启session后,请求网站,服务端会向浏览器响应一个setcookie
key为 PHPSESSID, value为一段唯一的字符串;
后面我们访问该浏览器用户在服务端保存的session列表,则会用到这个value字符串隐射

此时,我想到这么一个问题,如果同一个浏览器,同一网站,我登录两个用户,那岂不是PHPSESSID都一样,
最终服务端取得两个session得值,会有覆盖情况???

那么如何才能避免这种问题呢???

六月的风
Junwind
讨论数量: 7

登陆不了两个用户,因为sessionid一样,所以只能是同一个用户

2年前 评论

同一个浏览器,同一网站,两个用户的目的是什么?

2年前 评论
Junwind (楼主) 2年前

如果你的逻辑没有判断session中的登录状态,并且浏览器传的cookie中的sessionid是一个的话,就会覆盖了。

2年前 评论

可以研究下 有结论了 踢一脚

2年前 评论

如果真能同时登,那你setcookie的key就不应该设置成sessid,而是sessid+用户ID

2年前 评论
Junwind (楼主) 2年前

其实理论上是可以实现的,我这里想到两种

第一种:
浏览器有个东西叫session storage 不过这个只是当前页面有效,你用jwt+浏览器session storage是可以实现一个浏览器同时登录两个账号的,但是你新开窗口就等于新开一个登录。
第二种:
这个方案就是浏览器的url一直带着用户id的哈希值,通过哈希去确定登录的用户,加上浏览器cookie存下来的对应的jwt的token也是可以的

2年前 评论

@诺大的院子 +1 为什么要问这种问题?工作不饱和吗

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!