OAuth2--授權碼模式


一、理解什么是OAuth2

是開放授權的一個標准,允許用戶授權B應用不提供帳號密碼的方式去訪問該用戶在A應用服務器上的某些特定資源。
例子:咕咚app通過微信號方式登錄,獲取到用戶的微信名和微信頭像等資料。

二、OAuth2四種授權模式

2.1 授權碼模式

授權碼模式(authorization code)是功能最完整、流程最嚴密的授權模式,code保證了token的安全性,即使code被攔截,由於沒有app_secret,也是無法通過code獲得token的。

2.1.1 角色行為與功能
  • 資源所有者
    只需要允許或拒絕第三方應用獲得授權

  • 第三方應用
    申請成為資源服務器的第三方應用
    獲取資源服務器提供的資源

  • 授權服務器
    提供授權許可code、令牌token等

  • 資源服務器
    提供給第三方應用注冊接口,需要提供給第三方應用app_id和app_secret
    提供給第三方應用開放資源的接口

2.1.2 授權碼模式授權方式順序圖
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2.2隱式授權模式/簡化模式

和授權碼模式類似,只不過少了獲取code的步驟,是直接獲取令牌token的,適用於公開的瀏覽器單頁應用,令牌直接從授權服務器返回,不支持刷新令牌,且沒有code安全保證,令牌容易因為被攔截竊聽而泄露。

2.3密碼模式

使用用戶名/密碼作為授權方式從授權服務器上獲取令牌,一般不支持刷新令牌。

2.4客戶端憑證模式

一般用於資源服務器是應用的一個后端模塊,客戶端向認證服務器驗證身份來獲取令牌。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM