微信小程序之登陸態維護(十一)

【未經做者本人贊成,請勿以任何形式轉載】小程序

》什麼是登陸態?

所謂登陸態,就是程序在運行時,可以識別當前用戶,可以證實本身的惟一性且合法。瀏覽器

咱們知道,WEB服務器經過瀏覽器攜帶的cookie獲取session來判斷是不是同一用戶(或瀏覽器);Restful服務經過客戶端傳過來惟一ID,來識別調用用戶。
緩存

》爲何須要維護登陸態?

  • 有自身用戶體系的應用
  • 用戶敏感數據,只對用戶可見
  • 涉及用戶相關的業務,好比個人訂單、個性化推薦等

》小程序登陸態維護實現流程

  1. 經過wx.login獲取登陸態。
  2. 經過登陸返回的code發送給服務器,服務器用code換取session_key和openid後。
  3. 獲取session_key後通常使用緩存框架保存登陸態,服務端隨機生成一串惟一字符串3rdSessionId爲key,session_key爲value組成鍵值對並存到緩存當中,緩存時間視狀況自行決定。
  4. 將3rdSessionId返回給客戶端
  5. 客戶端將3rdSessionId緩存到localStorage中,後續接口從緩存中讀取3rdSessionId,傳遞給服務器;服務器根據3rdSessionId來判斷用戶身份。
  6. 若是服務器根據3rdSessionId在緩存中查找是否存在session_key,若是存在正常執行;若是不存在小程序未登陸,從新從第一步流程走。

以上流程是官方推薦使用的流程,並非維護登陸態的惟一途徑。服務器

另外,你也能夠在小程序中使用wx.checkSession()檢查登陸態是否過時。若是過時從新調用wx.login接口。
session_key在微信服務器有效期是30天,建議服務端緩存session_key不超過30天。微信

你也能夠關注個人微信公衆號『ITNotes』, 一塊兒交流學習 。
cookie

相關文章
相關標籤/搜索