最近輪到我在小組晨會來分享知識點,突然想到單點登錄,準備來分享下如何實現(xiàn)單點登錄,所以有了下文。實現(xiàn)方案以及代碼可能寫得不是很嚴謹,有漏洞的地方或者錯誤的地方歡迎大家指正。
剛開始頭腦中沒有思路,直接在博客園里面看看別人是如何來實現(xiàn)的,看了幾篇文章發(fā)現(xiàn),發(fā)現(xiàn)解決方案有點問題,或者說不算實現(xiàn)了單點登錄。最近輪到我在小組晨會來分享知識點,突然想到單點登錄,準備來分享下如何實現(xiàn)單點登錄,所以有了下文。實現(xiàn)方案以及代碼可能寫得不是很嚴謹,有漏洞的地方或者錯誤的地方歡迎大家指正。
名稱定義
為了方便說明先說明幾個文中出現(xiàn)的名詞的含義:
P站:統(tǒng)一登錄授權(quán)驗證中心,demo中 域名是www.passport.com:801
A站:處于不同域名下的測試網(wǎng)站,demo中 域名是www.a.com:802
B站:處于不同域名下的測試網(wǎng)站,demo中 域名是www.b.com:803
Token:用戶訪問P站的秘鑰
Ticket:用來保存用戶信息的加密字符串
單點登錄
訪問A站需要登陸的就跳轉(zhuǎn)P站中進行登陸,P站登陸之后跳轉(zhuǎn)回至A站,用戶再次訪問B站需要登陸的頁面,用戶不需要進行登陸操作就可以正常訪問。
實現(xiàn)思路
未登錄用戶訪問A站,首先會重定向跳轉(zhuǎn)至P站授權(quán)中心,P站首先通過檢測Cookie來判斷當前不是處于登陸狀態(tài),就跳轉(zhuǎn)至登陸頁面進行登陸操作,登陸成功之后把用戶信息加密ticket附在A的請求地址上返回,A站通過解密ticket來獲取用戶信息,解密成功并存進Session中(這樣用戶在A中就處于登陸狀態(tài)了),訪問通過;當用戶再次訪問B站的時候,對于B站來說,用戶是處于未登錄狀態(tài),則同樣會重定向跳轉(zhuǎn)至P站授權(quán)中心,P站檢測Cookie,判斷當前用戶處于登陸狀態(tài),就把當前用戶信息加密成ticket附在B的請求地址上返回,后面的操作就和A站處理一樣;這樣都登陸之后再次訪問A或者B,A和B中Session中都存儲了用戶信息,就不會再次請求P站了。
簡單關(guān)系圖
![](/attached/autodown/5eed9d66-1f55-407d-b46d-22119be42c24.png)
泳道流程圖
![](/attached/autodown/2da9afc0-2d60-458b-8455-906752466fe9.png)
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26
![學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)](http://m.roadsoft.com.cn/attached/image/templet/e87d53eb-cf7a-4689-887a-1cd260f416a5.jpg)