原文地址: www.jianshu.com/p/67836ffa9…
在做微信第三方平臺開發的時候,雖然授權的技術實現流程比較簡單,但是相對於一個key直接整合的一些其他的服務來說,還是有一些步驟,過一段時間再回頭查相關功能時還是可能忘記的,雖然官方的文件很全,但時每次都要前前後後看文件或每次都要走一遍步驟還是挺浪費時間的.
於是本人整理了下相關內容,進行分享和討論.
互動流程
搬自官網,以公眾號為例,授權給第三方平臺整體流程如下圖:
具體的步驟為:
- 第三方平臺方獲取預授權碼(
pre_auth_code
) - 引入使用者進入授權頁(PC和移動端)
- 使用者確認並同意登入授權給第三方平臺方
- 授權後回撥URI,得到授權碼(
authorization_code
)和過期時間 - 利用授權碼呼叫公眾號或小程式的相關API(獲取授權方的token等)
介面呼叫流程
整體流程還是很清晰易懂的,但是到具體介面呼叫時可能會有一些混亂,比如介面之間的引數的銜接等.因此本人制作了一張圖,從介面呼叫的角度來描述授權的流程,如下:
步驟從上到下
常見問題
1. component_access_token
的更新方式
答: 使用獲取介面來更新.
2. authorizer_access_token
的更新方式
答: 使用refresh_token
來更新.
refresh_token
也要同時使用最新返回的結果
3. authorizer_refresh_token
的丟失處理
答: 需要重新授權(從頭來一遍).
4. component_access_token
和authorizer_access_token
的更新機制
答: 主動+被動.
- 主動: 設定定時任務(如:1min)分別檢查
component_access_token
和authorizer_access_token
是否快過期或過期,如果是則更新token - 被動: 每次使用
component_access_token
或authorizer_access_token
時,先檢查相應其是否過期,如果過期則更新token再繼續相應操作
- 微信該介面有次數限制,因此需要合理的時機來請求
- 參考: 獲取access_token