授權碼許可類型的通信過程
間接通信
間接通信就是指擷取授權碼的互動。

我:“xx,我要通路你了。”
xx:“我把你引到授權服務,我需要授權服務給我一個授權碼。”
授權服務:“xx,我把授權碼發給浏覽器了。”
小兔軟體:“ 那我從浏覽器拿到了授權碼。”
xx和授權服務間,并無直接通信,而是通過中間人(浏覽器).
直接通信
授權碼換取通路令牌的互動,是“直接”的。
三方軟體xx擷取到授權碼後,向授權服務發起擷取通路令牌
access_token
的請求。
三方軟體要代表資源擁有者去通路受保護資源
授權服務負責頒發通路令牌,受保護資源負責接收并驗證通路令牌。
開發微信小程式場景
比如擷取使用者登入态資訊的過程:
通過 wx.login(Object object) 擷取登入憑證 code,該步是在小程式内部通過調用微信提供的 SDK 實作的
再通過該 code 換取使用者的 session_key 等資訊,即官方文檔的 auth.code2Session 方法,同時該方法也是被強烈建議通過開發者的後端服務來調用
參考
https://leokongwq.github.io/2017/02/28/why-oauth2-use-authorization-code.html https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html https://segmentfault.com/q/1010000014642301 https://tools.ietf.org/html/rfc6749