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


【未經作者本人同意,請勿以任何形式轉載】

》什么是登錄態?

所謂登錄態,就是程序在運行時,能夠識別當前用戶,能夠證明自己的唯一性且合法。

我們知道,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』, 一起交流學習 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM