天天看點

兩個若依系統,不能同時登入問題

問題背景:

同一台伺服器上部署了多個若依系統,他們試用不同的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系統需要重新登陸。

繼續閱讀