今日回顧了下微信小程序的登陸流程,做個總結
微信小程序登陸流程中一共有三個角色:
-
小程序客戶端 =》 小程序前端開發者 MiNiProgram
-
服務器端 =》 小程序后台服務器開發者 Developer Service
-
微信服務器 =》 Wechat Http Api
流程詳解:
-
前端通過調用wx.login接口向微信服務器請求一個code
微信服務器向前端返回一個code碼
該code碼有效時長目前為5分鍾
這個code前端並不需要使用,但前端需要將這個code值使用wx.request發送給后台,目的是換取openid
wx.login通常在app.js中的onLaunch聲明周期中進行
-
后台接收到前台發送的code碼后,會連同 appid 和 appsecre 向微信服務器發起請求,
appid 和 appsecre獲取方法:微信公眾平台-》掃碼登陸 -》 開發-》 開發設置 -》
-
請求成功后,后端會接收由微信服務端返回的session_key和openid
openid:開發者用戶的唯一標識
-
后端一般不會直接將openid返回給前端,而是返回前台一個token作為用戶的登陸狀態憑據
如果公司期待用戶不僅僅在小程序端登陸 ,而是在公司也有賬號和密碼,則會將openid+賬號+密碼一同寫入公司用戶表
-
前端使用storage保存這個token,下次用戶再次登陸時,通過發送給后台storage里的token來驗證登陸是否過期,如果過期則提示再次登陸,如果沒有過期則開始下一步業務邏輯
token過期失效目前為2小時
此刻 該token值作為驗證用戶登陸態的唯一標識
這樣做的好處是防止用戶頻繁登陸
-
確保token未過期后,前端就可以攜帶token向后端發送請求
-
后端在接收了前端傳來的用戶token后,便可以根據該用戶token查詢基於該用戶的數據信息,並返回給前端
比如該用戶的購物車數據
-
前端展示用戶相關數據
以上是整個微信小程序開發流程,身為前端開發者需要做的事情有:
* 1. 調用wx.login向微信服務器請求獲取code
* 2. 調用wx.request發送code到后台服務器,此時服務器會返回一個token作為登陸狀的標識
* 3. 將登陸態的標識token進行存儲,以便下次使用
* 4. 請求需要登陸態標識的接口時,攜帶token
儲存token值
-
使用getGlobolData存儲,以供本次小程序運行使用,
-
使用wx.Setstorage存儲token,以便下次小程序運行使用