一、前言
近期在登录某个系统的时候,我用同一个浏览器登录了两个账号。退出来以后再也登不上去了,并且第一次退出的账号显示“没有注册过”???
登录第二个退出来的账号,网站报出了一下错误
二、错误分析
查了一下,确实是因为存在两个用户而引发的问题
服务端区分不同用户是通过 Cookie 中存储的 JSESSIONID 区分的,如果 JSESSIONID 相同,那么他们在服务端将会使用同一个 Session 对象
。而同一浏览器使用的 Cookie 是相同的
, 从而 JSESSIONID 也是相同的,无法区分不同的用户。当浏览器登录第一个用户后,用户信息写入到 Session 中,第二个用户登录时
,将会覆盖第一个用户的登录信息。
也就是说第二个登录的会冲掉第一个登录的
,当你刷新前面登录的页面的时候就会变成第二个登录用户的信息
,这也是为什么我回到第一个登录的页面时发现少了几条记录的原因(已经变成用户二了)。
所以我就有一些疑问,第一个用户所提交的表单被保存了没?既然是第二个用户冲掉了第一个用户,那为什么第二个用户变成未注册的状态了?
三、错误解决
这种错误从用户端是无法直接解决的,一般需要联系网站的服务人员。
或者比较懒的话,可以等一段时间,因为好的网站有自己维护的时间(一般在深夜),第二天可能就给你恢复正常了。