1. 程式人生 > >OAuth 2.0學習(一)

OAuth 2.0學習(一)

mpi res 開發 關於 com 實踐 ont word 還需

一、認識OAuth2.0

  是什麽:OAuth是一個關於授權的開放網絡標準
能做什麽:以安全的方式做數據的共享(第三方登錄授權)

二、OAuth2.0 四種授權模式

1. 授權碼(認證碼)模式 (Authorization code) response_type=code
2. 簡化(隱形)模式 (Impilict) response_type=token
3. 用戶名密碼模式 (Resource Owner Password Credential) grant_type=password
4. 客戶端模式 (Client Credential) grant_type=client_credential

技術分享圖片

OAuth2.0的核心既是取得access_token,四種授權模式殊途同歸,最終都是要取得access_token,只是路徑不同,參數不同

問題:什麽場景選擇哪種方式?

授權碼:第三方登錄授權

客戶端憑證:機器與機器之間

用戶名密碼:QQ和QQ音樂(都是一方的)

簡化:第三方共同開發

三、四種模式實踐

參考代碼地址https://github.com/spring2go/oauth2lab

1.授權碼模式授權服務器的測試

分析:授權碼模式的授權服務器需要授權服務和資源服務,還需要返回用戶的信息(domain和controller)

測試流程:

  a.獲取授權碼

    發送請求:主要是發送客戶端id

    輸入賬號密碼登錄之後

    會返回一個隨機code

  b.獲取訪問令牌

    發送請求攜帶 客戶端id及 secret密碼

    驗證成功會獲取access_token

  c.調用api

    通過access_token能夠獲取響應的數據

OAuth 2.0學習(一)