同一个浏览器,同一网站,登录两个用户,如果处理相同的PHPSESSID
我们开启session后,请求网站,服务端会向浏览器响应一个setcookie
key为 PHPSESSID, value为一段唯一的字符串;
后面我们访问该浏览器用户在服务端保存的session列表,则会用到这个value字符串隐射
此时,我想到这么一个问题,如果同一个浏览器,同一网站,我登录两个用户,那岂不是PHPSESSID都一样,
最终服务端取得两个session得值,会有覆盖情况???
那么如何才能避免这种问题呢???
登陆不了两个用户,因为sessionid一样,所以只能是同一个用户
同一个浏览器,同一网站,两个用户的目的是什么?
如果你的逻辑没有判断session中的登录状态,并且浏览器传的cookie中的sessionid是一个的话,就会覆盖了。
可以研究下 有结论了 踢一脚
如果真能同时登,那你setcookie的key就不应该设置成sessid,而是sessid+用户ID
其实理论上是可以实现的,我这里想到两种
第一种:
浏览器有个东西叫session storage 不过这个只是当前页面有效,你用jwt+浏览器session storage是可以实现一个浏览器同时登录两个账号的,但是你新开窗口就等于新开一个登录。
第二种:
这个方案就是浏览器的url一直带着用户id的哈希值,通过哈希去确定登录的用户,加上浏览器cookie存下来的对应的jwt的token也是可以的
@诺大的院子 +1 为什么要问这种问题?工作不饱和吗