欧美日韩国产一区,亚洲一区视频,色综合久久久久,私密按摩师舌头伸进去了,99re6这里只有精品,夜夜性日日交xxx性hd

微信小程序網絡之SESSION管理(9)

  • • 發表于 8年前
  • • 作者 Fredia
  • • 5672 人瀏覽
  • • 0 條評論
  • • 最后編輯時間 8年前
  • • 來自 [技 術]

原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處

微信的定位并不是 HTML5,這里很多人都有誤解。在一些實現上,并不能想當然地用 HTML5 的思路來思考。比如,微信的請求接口 wx.request 并不支持 cookie 傳遞,所以會話層不能使用傳統的 Session 方式。 ——騰訊云官方的微信小程序云端解決方案
github:https://github.com/CFETeam/weapp-session

設計架構

騰訊會話管理中間件
從圖中可以看出weapp-session使用自定義 Header 來傳遞微信小程序內用戶信息,在服務內可以直接獲取用戶在微信的身份。會話層使用 Redis 作為緩存管理,比較可靠。
但是也是騰訊在推銷自己的產品!!!
以下借鑒自官方文檔:

STEP1 客戶端(微信小程序)發起請求 request

STEP2 weapp-session-client 包裝 request

首次請求
調用 wx.login() 和 wx.getUserInfo() 接口獲得 code、rawData 和 signature
requset 的頭部帶上 code、rawData 和 signature
保存 code 供下次調用
非首次請求
request 的頭部帶上保存的 code

STEP3 服務器收到請求 request,中間件從頭部提取 code、rawData 和 signature 字段

如果 code 為空,跳到第 4 步
如果 code 不為空,且 rawData 不為空,需要進行簽名校驗
  使用 code,appid、app_secret 請求微信接口獲得 session_key 和 openid
        如果接口失敗,響應 ERR_SESSION_KEY_EXCHANGE_FAILED  
  使用簽名算法通過 rawData 和 session_key 計算簽名 signature2
  對比 signature 和 signature2
  簽名一致,解析 rawData 為 wxUserInfo
        把 openid 寫入到 wxUserInfo
        把 (code, wxUserInfo) 緩存到 Redis
        把 wxUserInfo 存放在 request.$wxUserInfo 里
        跳到第 4 步
  簽名不一致,響應 ERR_UNTRUSTED_RAW_DATA
如果 code 不為空,但 rawData 為空,從 Redis 根據 code 查詢緩存的用戶信息
      找到用戶信息,存放在 request.$wxUserInfo 字段里,跳到第 4 步
      沒找到用戶信息(可能是過期),響應 ERR_SESSION_EXPIRED

STEP4 request 被業務處理,可以使用 request.$wxUserInfo 來獲取用戶信息(request.$wxUserInfo 可能為空,業務需要自行處理)

現在也在陸陸續續的出好多第三的SESSION管理模塊,坐等開源吧,畢竟造輪子這種事情大部分人也不喜歡~

分享到:
0條評論
Ctrl+Enter
作者

Fredia

Fredia

APP:1 帖子:12 回復:30 積分:552

已加入社區[3109]天

CTOWAY

作者詳情》
Top