oauth2四種受權方式小結

本文主要小結一下oauth2的四種模式的特色和適用場景。web

四種受權方式

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 tokenapi

小結

  • 密碼模式(resource owner password credentials)(爲遺留系統設計)(支持refresh token)
  • 受權碼模式(authorization code)(正宗方式)(支持refresh token)
  • 簡化模式(implicit)(爲web瀏覽器應用設計)(不支持refresh token)
  • 客戶端模式(client credentials)(爲後臺api服務消費者設計)(不支持refresh token)
相關文章
相關標籤/搜索