單點登錄流程

有狀態登陸
利用session的登陸都算是有狀態登陸
服務端保存客服端狀態的登陸

無狀態登錄
服務端不保存客服端的如何狀態信息
客服端成功登陸後,服務端返回給客服端一個token,這token本身是一個隨機的
唯一的字符串,另外這token中還攜帶當前用戶的各種信息加密,

單點登錄可以有狀態和無狀態
技術方案
有狀態登錄 Redis+手動實現 Token
無狀態登陸 JWT(JOSN Web Token) ,OAuth2

Redis+Token實現思路
1.前端用戶拿着用戶名/密碼去登錄,服務端校驗用戶名密碼
2. 如果用戶名/密碼輸入正確,服務端生成一個Token(隨機的唯一字符串)返回給前端,同時生成的Token爲key,當前用戶信息爲value,數據保存到Redis中,同時給key設置一個過期時間
3. 如果用戶名/密碼輸入錯誤,返回登錄失敗
4. 服務端同時提供一個刷新Token的接口,前端用戶拿着舊的Token來(Redis中判斷),在舊失效之前,key換取新的Token
5. 前端拿到Token之後,之後發送沒次請求,都要攜帶Token,服務端收到Token之後,去Redis查詢,就可以獲取到當前用戶的各種信息.前端可以在請求攔截器中統一添加Token,後端在攔截器中統一處理請求參數.

數據保存在Token裏面,以後不管那個子系統,只要一個登錄了,其它都知道登陸,系統都去一個地方拿信息

無狀態登錄的弊端,Token丟失,註銷登陸不好註銷. Token都發到客服端了
有狀態裏面可以直接刪除信息

Spring Security+JWT
1.用戶登陸成功過,將當前用戶信息加密返回給前端
2.前端用戶發送其它請求時,需要每次攜帶Token,JWT負責Token解析判斷

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