微信小程式 登入流程規範解讀

李文楊發表於2018-01-04

一. 官方登入時序圖

二. 簡單理解

這裡僅按照官方推薦的規範來

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放在請求頭裡,第三方服務端解析判斷合法性,並進行正常的邏輯處理。

 

相關文章