springBoot+redis 實現session共享理解,應用場景單點登錄,分佈式應用。

Springboot+redis 實現session共享也是利用了cookie在域名,路徑相同的情況下可以共享內容。第一次請求會將SESSION保存在redis中,並將SESSIONID返回到瀏覽器的cookie中,第二次請求會攜帶上第一次請求的JSESSIONID。服務端拿到ID先到redis中查找是否存在此SSSSION,存在則拿出來用,不會再創建新的會話。

單點登錄可以用cookie+redis的方式,第一次登陸生成token,將token和用戶以鍵值對的方式存入redis。並將token寫入cookie返回到瀏覽器。以後每次請求cookie都會攜帶上token。服務端獲取token然後去redis中查找是否存在此用戶從而實現單點登錄。

也可以用session共享的方式,將token放入session中。其餘步驟和上面一樣。

兩者的前提都是設置cookie的domian相同,路徑爲“/”,區別是一個將token放在cookie中,放在cookie中服務端不用實現session共享。一個將token放在session中,服務端需要實現session共享,springboot實現session共享的方式很簡單,只需要引入spring-session-data-redis,spring-boot-starter-data-redis依賴,並在啓動類上加上@EnableRedisHttpSession註解即可。

通過Nginx配置的集羣或分佈式應用可以使用session共享來實現會話的統一管理。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章