1. 程式人生 > >OAuth2認證和授權入門

OAuth2認證和授權入門

title 後端 用戶體驗 設置 如果 level 直接 授權碼 cloud

OAuth2四種授權方式

四種授權方式

OAuth 2.0定義了四種授權方式。

  • 密碼模式(resource owner password credentials)
  • 授權碼模式(authorization code)
  • 簡化模式(implicit)
  • 客戶端模式(client credentials)

密碼模式(resource owner password credentials

  • 這種模式是最不推薦的,因為client可能存了用戶密碼
  • 這種模式主要用來做遺留項目升級為oauth2的適配方案
  • 當然如果client是自家的應用,也是可以
  • 支持refresh token

授權碼模式(authorization code

  • 這種模式算是正宗的oauth2的授權模式
  • 設計了auth code,通過這個code再獲取token
  • 支持refresh token

簡化模式(implicit

  • 這種模式比授權碼模式少了code環節,回調url直接攜帶token
  • 這種模式的使用場景是基於瀏覽器的應用
  • 這種模式基於安全性考慮,建議把token時效設置短一些
  • 不支持refresh token

客戶端模式(client credentials

  • 這種模式直接根據client的id和密鑰即可獲取token,無需用戶參與
  • 這種模式比較合適消費api的後端服務,比如拉取一組用戶信息等
  • 不支持refresh token,主要是沒有必要

refresh token的初衷主要是為了用戶體驗不想用戶重復輸入賬號密碼來換取新token,因而設計了refresh token用於換取新token 這種模式由於沒有用戶參與,而且也不需要用戶賬號密碼,僅僅根據自己的id和密鑰就可以換取新token,因而沒必要refresh token

  • 密碼模式(resource owner password credentials)(為遺留系統設計)(支持refresh token)
  • 授權碼模式(authorization code)(正宗方式)(支持refresh token
    )
  • 簡化模式(implicit)(為web瀏覽器應用設計)(不支持refresh token)
  • 客戶端模式(client credentials)(為後臺api服務消費者設計)(不支持refresh token)

參考:

https://cloud.tencent.com/developer/article/1340117

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

OAuth2認證和授權入門