一. 官方登入時序圖
二. 簡單理解
這裡僅按照官方推薦的規範來
0. 前置條件
一共有三端:
- 微信小程式客戶端
- 第三方伺服器端(自己搭建)
- 微信伺服器端
1. 客戶端獲得code,並將code傳給第三方服務端
微信小程式端呼叫wx.login,獲取登入憑證(code),並呼叫介面,將code傳送到第三方客戶端
2. 第三方服務端用code換session_key和openid
小程式端將code傳給第三方伺服器端,第三方伺服器端呼叫介面,用code換取session_key和openid
3. 第三方服務端生成新的session(3rd_session)
第三方伺服器端拿到請求回來的session_key和openid,先留著,不能給客戶端;然後用作業系統提供的真正隨機數演算法生成一個新的session,叫3rd_session
4. 第三方服務端建立對應關係,並儲存
將3rd_session作為key,微信服務端返回的session_key和openid作為值,儲存起來
5. 第三方服務端將3rd_session傳送到客戶端
客戶端只拿到3rd_session就夠了,大人說話小孩別插嘴,小程式不需要知道session_key和openid
6. 正常請求
小程式每次請求都將3rd_session放在請求頭裡,第三方服務端解析判斷合法性,並進行正常的邏輯處理。