天天看點

單點登入-認證伺服器與用戶端的session過期時間如何統一

文章目錄

  • ​​寫在前面​​
  • ​​引出問題​​
  • ​​解決問題​​
  • ​​前後端分離項目​​

寫在前面

之前畫了一個單點登入的邏輯圖,其中有很多細節沒有展現清楚。

​​​終于把單點登入完整流程圖畫明白了!史上最完整的CAS單點登入完整圖解!​​

今天就來讨論一下,認證伺服器登入完成之後,如何與用戶端保持session過期時間的統一?

引出問題

我們從流程圖中可以看出,當使用者完成了首次登入認證之後,會在認證伺服器存放一份session,同樣也會在用戶端伺服器存放一份session,以後再通路APP,不會再經過認證伺服器來認證該使用者是否登入,而是直接在APP的背景來認證即可。

那麼問題來了,認證伺服器有一份session,用戶端伺服器也有一份session,這兩者如何同步?

假如說每次請求都同步一次的話,伺服器壓力也太大了,有沒有更好的辦法?

有!

解決問題

用戶端伺服器在認證的時候,存一份認證伺服器的session過期時間,因為使用者每次通路用戶端頁面,用戶端伺服器的session都會重新整理過期時間。

每次用戶端伺服器校驗session的時候,判斷認證伺服器的session是否過期,如果将要過期或者已經過期,就調用接口來重新整理認證伺服器的session過期時間,同時同步到用戶端伺服器中。

這樣,就可以保證兩者之間session過期時間的同步了,并且也沒有很頻繁的互動。

單點登入-認證伺服器與用戶端的session過期時間如何統一

前後端分離項目

現在的項目大多數都是前後端分離項目了,可能cookie-session這一套已經不适用了,但是基本原理還是一樣的。

繼續閱讀