天天看點

Spring Cloud雲架構 - SSO單點登入之OAuth2.0登入流程(2)

上一篇是站在巨人的肩膀上去研究OAuth2.0,也是為了快速幫助大家認識OAuth2.0,閑話少說,我根據架構中OAuth2.0的使用總結,畫了一個簡單的流程圖(根據使用者名+密碼實作OAuth2.0的登入認證):

Spring Cloud雲架構 - SSO單點登入之OAuth2.0登入流程(2)

上面的圖很清楚的描述了目前登入login的流程,現在我們針對于login做成相關的微服務,解析如下:

請求方式:POST

服務URL:

http://localhost:8080/user/login 參數類型:application/json

Headers: Content-Type: application/json
             Authorization: Basic QXkjkdkYkhfeyKOKKHUM67ejfjeSfnrRdk5nPT0=    
Body:{
       "userName":"admin",  ---也可以是手機号碼等

      "password": "e10adc3949ba59abbe56e057f20f883e"  

} 

傳回值類型: application/json
傳回的結果集: {

 "code": "200",

 "message": "Success",

 "version": "v1.0",

 "data": {

   "userInfo": {

     "userId": "00001",

     "pwd": "e10adc3949ba59abbe56e057f20f883e",

     "userName": "admin",

     "mobile": "15875500000",

     "telephone": "",

     "wechat": "",

     "email": "[email protected]",

     "status": "1",

     "createTime": "2017-06-26"

    },

   "roleIds": "100",

   "tokenInfo": {

     "accessToken":"4de55a69-e372-4766-acd3-1c419d6f2fda",

     "tokenType": "bearer",

     "webTokent":"uHSLjfJoQwU4t4PAqCzH1SN0fp7PUWKluPNS+x1dZ8R9Gx+NJkBI7w==",

     "refreshToken":"d3d71594-5c3f-4a68-a7e5-b8d21c4fa73b",

     "expiresIn": 34644,

     "scope": "read write"

    }

  }

}            

備注: 可以使用Postman工具進行測試

架構設計思想: 提供獨立的commonservice-sso的微服務、提供component-sso的依賴元件、提供針對于使用者登入的微服務用戶端user-service微服務接口。

整個執行的流程如下:user-service ---> commonservice-sso ---> component-sso

這裡還沒有講解到服務網關,後面會涉及到服務網關和sso單點登入之間如何實作服務認證和鑒權。

從現在開始,我這邊會将近期研發的spring cloud微服務雲架構的搭建過程和精髓記錄下來,幫助更多有興趣研發spring cloud架構的朋友,大家來一起探讨spring cloud架構的搭建過程及如何運用于企業項目。完整項目的源碼來源 技術支援1791743380