Authorization Code 授權


  Authorization Code 方式適用於有自己的服務器的應用。之所以叫這個名字,是因為流程中引入了一個叫做 authorization code 的東西。這個東西是一個一次性的臨時憑證,用來換取 access token 和 refresh token。

  鑒權服務器提供了一個類似這樣的接口:

  https://www.xxx.com/exchange?code=&client_id=&client_secret=

  需要傳入 code、client_id 以及 client_secret。驗證通過后,返回 access token 和 refresh token。一旦換取成功,code 立即作廢,不能再使用第二次。

  為什么要引入一個一次性的 code?

  先看流程圖:

  這個 code 的作用是保護 token 的安全性。上一節說到,Implicit 方式下,token 是不安全的。這是因為在 4 這一步當中直接把 token 返回給應用。而這一步容易被攔截、竊聽。引入了 code 之后,即使攻擊者能夠竊取到 code,但是由於他無法獲得應用保存在服務器的 client_secret,因此也無法通過 code 換取 token。而 5 這一步,為什么不容易被攔截、竊聽呢?這是因為,首先,這是一個從服務器到服務器的訪問,黑客比較難捕捉到;其次,這個請求通常要求是 https 的實現。即使能竊聽到數據包也無法解析出內容。

  有了這個 code,token 的安全性大大提高。因此,Oauth2.0 鼓勵使用這種方式進行授權,而 Implicit 方式則是在不得已情況下才會使用。

 

        若有疑問,可以直接進以下公眾號提問。也可以直接發送 oauth2.0 獲取設計指南和偽代碼:


免責聲明!

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



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