【未經做者本人贊成,請勿以任何形式轉載】小程序
》什麼是登陸態?
所謂登陸態,就是程序在運行時,可以識別當前用戶,可以證實本身的惟一性且合法。瀏覽器
咱們知道,WEB服務器經過瀏覽器攜帶的cookie獲取session來判斷是不是同一用戶(或瀏覽器);Restful服務經過客戶端傳過來惟一ID,來識別調用用戶。
緩存
》爲何須要維護登陸態?
- 有自身用戶體系的應用
- 用戶敏感數據,只對用戶可見
- 涉及用戶相關的業務,好比個人訂單、個性化推薦等
》小程序登陸態維護實現流程
- 經過wx.login獲取登陸態。
- 經過登陸返回的code發送給服務器,服務器用code換取session_key和openid後。
- 獲取session_key後通常使用緩存框架保存登陸態,服務端隨機生成一串惟一字符串3rdSessionId爲key,session_key爲value組成鍵值對並存到緩存當中,緩存時間視狀況自行決定。
- 將3rdSessionId返回給客戶端
- 客戶端將3rdSessionId緩存到localStorage中,後續接口從緩存中讀取3rdSessionId,傳遞給服務器;服務器根據3rdSessionId來判斷用戶身份。
- 若是服務器根據3rdSessionId在緩存中查找是否存在session_key,若是存在正常執行;若是不存在小程序未登陸,從新從第一步流程走。
以上流程是官方推薦使用的流程,並非維護登陸態的惟一途徑。服務器
另外,你也能夠在小程序中使用wx.checkSession()檢查登陸態是否過時。若是過時從新調用wx.login接口。
session_key在微信服務器有效期是30天,建議服務端緩存session_key不超過30天。微信
你也能夠關注個人微信公衆號『ITNotes』, 一塊兒交流學習 。
cookie