應用場景
資源所有者給client提供token而不是要求用戶直接提供密碼的授權方式
角色
1.資源所有者
2.client(第三方)
3.用戶
4.授權層
四種授權方式
1.授權碼
2.隱藏式
3.密碼式
4.憑證式
授權碼授權流程
client對資源服務發(fā)起請求,服務要求提供token
client對授權層發(fā)起生成授權碼請求,授權層返回授權碼
client對授權層發(fā)送授權碼換取token,授權層返回token及refresh token
隱藏式(通常只針對只有前端的場景)
client直接對授權層發(fā)起獲取token請求并傳入redirect_uri
授權層跳轉到授權頁要求用戶操作或掃碼
用戶確認后授權層把token附加到redirect_uri跳轉到目標地址(注意通知是加錨點而不是query,例如https:www.a.com#token=...,防止中間人攻擊)
密碼式
直接提供密碼,一般不會使用
憑證式
通常針對client和資源所有者,用戶不參與
直接對授權層發(fā)起請求,提供screct和client_id,授權層返回token
此場景是針對client授權而不是用戶,所以refresh_token沒啥用