(十一)JAVA springboot ssm b2b2c多使用者商城系統 - SSO單點登入之OAuth2.0登入流程(2)

itspring_cloud發表於2019-01-29

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

上面的圖很清楚的描述了當前登入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": "xxx@qq.com",
 
     "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大型企業分散式微服務雲構建的B2B2C電子商務平臺原始碼請加企鵝求求:一零三八七七四六二六


相關文章