一、理解什么是OAuth2
是開(kāi)放授權(quán)的一個(gè)標(biāo)準(zhǔn)敦姻,允許用戶授權(quán)B應(yīng)用不提供帳號(hào)密碼的方式去訪問(wèn)該用戶在A應(yīng)用服務(wù)器上的某些特定資源瘾境。
例子:咕咚app通過(guò)微信號(hào)方式登錄,獲取到用戶的微信名和微信頭像等資料镰惦。
二迷守、OAuth2四種授權(quán)模式
2.1 授權(quán)碼模式
授權(quán)碼模式(authorization code)是功能最完整侦鹏、流程最嚴(yán)密的授權(quán)模式适袜,code保證了token的安全性,即使code被攔截锌订,由于沒(méi)有app_secret眨业,也是無(wú)法通過(guò)code獲得token的急膀。
2.1.1 角色行為與功能
資源所有者
只需要允許或拒絕第三方應(yīng)用獲得授權(quán)第三方應(yīng)用
申請(qǐng)成為資源服務(wù)器的第三方應(yīng)用
獲取資源服務(wù)器提供的資源授權(quán)服務(wù)器
提供授權(quán)許可code沮协、令牌token等資源服務(wù)器
提供給第三方應(yīng)用注冊(cè)接口龄捡,需要提供給第三方應(yīng)用app_id和app_secret
提供給第三方應(yīng)用開(kāi)放資源的接口
2.1.2 授權(quán)碼模式授權(quán)方式順序圖
2.2隱式授權(quán)模式/簡(jiǎn)化模式
和授權(quán)碼模式類(lèi)似,只不過(guò)少了獲取code的步驟慷暂,是直接獲取令牌token的聘殖,適用于公開(kāi)的瀏覽器單頁(yè)應(yīng)用,令牌直接從授權(quán)服務(wù)器返回行瑞,不支持刷新令牌奸腺,且沒(méi)有code安全保證,令牌容易因?yàn)楸粩r截竊聽(tīng)而泄露血久。
2.3密碼模式
使用用戶名/密碼作為授權(quán)方式從授權(quán)服務(wù)器上獲取令牌突照,一般不支持刷新令牌。
2.4客戶端憑證模式
一般用于資源服務(wù)器是應(yīng)用的一個(gè)后端模塊氧吐,客戶端向認(rèn)證服務(wù)器驗(yàn)證身份來(lái)獲取令牌讹蘑。