天天看点

两个若依系统,不能同时登录问题

问题背景:

同一台服务器上部署了多个若依系统,他们试用不同的MySQL数据库、redis数据库,试用不同的端口。

问题描述:

当两个系统在我本地打开,当我登录进入其中一个系统,在另一个系统(未登录状态)的登录页刷新页面时,会提示会话已过期,重新登录,这时返回前一个页面,发现登录状态已退出,需要重新登录操作。

表面来看,就相当于,两个不相关的系统,登录其中一个,在另一个页面操作,会顶掉另一个的登录状态。

尝试解决:

1、登录状态需要token来进行验证,可能存储token的redis出了问题。

这个情况可能性太低,并且也进行过验证,另一个系统的操作并不会影响当前系统所使用的redis数据库的数据。

2、可能是SpringSecurity在使用时存在什么问题。

捋了一下整个过程,没发觉什么问题。

3、可能是前端问题。

试了一下,真的是。

登录A系统,去B系统页面刷新操作,发现,B提起的请求当中赫然有了token,为什么A系统的token出现在B这里,继续寻找。

发现在getToken方法中,获取token的方式是从cookie中根据key来获取,而我没改过这个key,所以,两个系统再根据同一个key去取token,然后去redis查询是否存在,A系统的token当然不会存在于B系统所使用的的redis,因此,前端丢掉这个token,导致A系统需要重新登陆。

继续阅读