Open zd906658355 opened 6 years ago
应该是用户信息存进cookie的原因,可以试试把用户信息存进session中试试
------------------ 原始邮件 ------------------ 发件人: "zd906658355"notifications@github.com; 发送时间: 2018年3月15日(星期四) 中午12:14 收件人: "baichengzhou/SpringMVC-Mybatis-Shiro-redis-0.2"SpringMVC-Mybatis-Shiro-redis-0.2@noreply.github.com; 抄送: "Subscribed"subscribed@noreply.github.com; 主题: [baichengzhou/SpringMVC-Mybatis-Shiro-redis-0.2] 同一浏览器登录多用户的问题 (#24)
在同一个浏览器中打开两个登录页面,先登录一个admin ,然后在登录一个用户,再去刷新admin的页面时,会发现已经变成了第二个登录的用户信息了,这个有没有什么好一点的办法解决一下呢
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
基本不用解决吧。 WEB端应用都是这样。这个基本没什么好的办法,你随便试试淘宝、JD,Sina之类的,随意找个网站都可以,看是否实现了你说的需求!
@SunFireX 既然你说到了cookie,我就解释下,为什么不行。
都知道我们的Web应用交互是无状态的,也就是一个请求A开始到结束,到第二次A请求,其实服务端已经不认识这个A请求了。我们现在认识是为什么,是因为Session?Good,是的。那么我说下Session是怎么实现状态化的。
客户端请求--->服务端(服务端判断Cookie中是否有对应的SessionKey),如果有,用它去获取session,如果没有对应的SessionKey,或者没有获取到session,都会重新创建一个SessionKey,并且创建一个Session,保持KEY:Value的存储关系。 当第二次请求--->服务端(服务端判断Cookie中是否有对应的SessionKey)这个时候就能通过SessionKey获取到Session,从而就是有状态了。
SessionKey就是我们平时说的SessionID。 预知后事如何,请自行百度、Google Cookie And Session
当然不是说解决不了,是没必要。另外真的要解决,我可以提供一下思路。当登陆后,重写SessionID,并且更新原来的session,sessionID最好是和用户一一对应。反正各种解决办法都与此类似!
@baichengzhou 恩恩 我去试了一下京东的,好像也是这个样子. 看样子是我想的太多了 ,谢谢了
这个好像很正常吧,第一个cookie被第二个覆盖了啊
在同一个浏览器中打开两个登录页面,先登录一个admin ,然后在登录一个用户,再去刷新admin的页面时,会发现已经变成了第二个登录的用户信息了,这个有没有什么好一点的办法解决一下呢