首頁  >  問答  >  主體

java - 单点登录ticket怎么保存在服务端,怎么发送给用户?

PHP中文网PHP中文网2741 天前292

全部回覆(1)我來回復

  • ringa_lee

    ringa_lee2017-04-17 18:02:25

    解決方案有很多啊:
    1.用戶透過在單一登入伺服器登陸,登入成功後,單點登入伺服器分配給該用戶一個ticket。然後單一登入伺服器將該ticket做為key,使用者名稱做為value,儲存在redis中。透過判斷該key是否是有效的來判斷該使用者會話有效。
    後續會有服務透過傳送一個ticket到單一登入伺服器來驗證該ticket是否有效,來判斷該使用者是否登入了。
    但是這樣會有個問題,某個用戶肯能不停的登錄,這樣單點登錄伺服器每次都會將該ticket存儲在redis中,雖然該ticket有過期時間,但有可能在短時間內在redis中寫入大量的ticket。
    2.放在cookie中,透過cookie的方式,傳到客戶端。若被用戶端瀏覽器停用了,就不能用了
    3.綁定到session。

    回覆
    0
  • 取消回覆