Api學習筆記–關於oAuth2.0
使用者運行流程
(A)使用者打開客戶端以後,客戶端要求使用者給予授權。
(B)使用者同意給予客戶端授權。
(C)客戶端使用上一步獲得的授權,向認證伺服器申請令牌。
(D)認證伺服器對客戶端進行認證以後,確認無誤,同意發放令牌。
(E)客戶端使用令牌,向資源伺服器申請獲取資源。
(F)資源伺服器確認令牌無誤,同意向客戶端開放資源。
客戶端授權
客戶端必須得到使用者的授權(authorization grant),才能獲得令牌(access token)。OAuth 2.0定義了四種授權方式。
- 授權碼模式(authorization code)
- 簡化模式(implicit)
- 密碼模式(resource owner password credentials)
- 客戶端模式(client credentials)
授權碼模式
(A)使用者訪問客戶端,後者將前者導向認證伺服器。
(B)使用者選擇是否給予客戶端授權。
(C)假設使用者給予授權,認證伺服器將使用者導向客戶端事先指定的"重定向URI"(redirection URI),同時附上一個授權碼。
(D)客戶端收到授權碼,附上早先的"重定向URI",向認證伺服器申請令牌。這一步是在客戶端的後台的伺服器上完成的,對使用者不可見。
(E)認證伺服器核對了授權碼和重定向URI,確認無誤後,向客戶端發送訪問令牌(access token)和更新令牌(refresh token)。
接下來讓我做個微信的小測試
微信公眾平台測試賬號
修改網域並關注自己的測試公眾號
獲取接口權限 修改回調頁面為自己的網域
微信開發者工具調用微信使用者接口
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 拉起微信接口返回回調頁面 顯示授權
- APPID 測試賬號中的appID,填寫自己賬號的 appID
- REDIRECT_URI 使用者同意授權後的回調地址,填寫 http://回調地址
- SCOPE 應用授權作用域,填寫 snsapi_userinfo
- STATE 隨機參數,可以不填,我們保持 STATE 即可。
授權 向認證伺服器申請授權碼並且返回授權碼
- code 為授權碼