商城系統(tǒng) 注冊

小程序登錄態(tài)維護,小程序怎么保持登錄態(tài)

2018-04-11|HiShop
導(dǎo)讀:微信小程序的運行環(huán)境不是在瀏覽器下運行的。所以不能以cookie來維護登錄態(tài)。下面我就來說說我根據(jù)官方給出的方法來寫出的維護登錄態(tài)的方法吧。...

  

  微信小程序的運行環(huán)境不是在瀏覽器下運行的。所以不能以cookie來維護登錄態(tài)。下面我就來說說我根據(jù)官方給出的方法來寫出的維護登錄態(tài)的方法吧。

  一、登錄態(tài)維護

  官方的文檔地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject

  通過 wx.login() 獲取到用戶登錄態(tài)之后,需要維護登錄態(tài)。開發(fā)者要注意不應(yīng)該直接把 session_key、openid 等字段作為用戶的標(biāo)識或者 session 的標(biāo)識,而應(yīng)該自己派發(fā)一個 session 登錄態(tài)(請參考登錄時序圖)。對于開發(fā)者自己生成的 session,應(yīng)該保證其安全性且不應(yīng)該設(shè)置較長的過期時間。session 派發(fā)到小程序客戶端之后,可將其存儲在 storage ,用于后續(xù)通信使用。

  登錄時序圖
小程序登錄態(tài)維護,小程序怎么保持登錄態(tài)

  從上圖可以看出。當(dāng)我們通過wx.login()獲取code的后,發(fā)送給我們的服務(wù)器,然后去請求微信服務(wù)器換取得到對應(yīng)的openid與session_key,openid是該用戶在小程序中的唯一標(biāo)識用于模板通知之類的。session_key就是用來解密用戶的敏感信息。unionid之類的。unionid是微信用戶在所有微信平臺下的唯一標(biāo)識。下面我會講解一下如何得到。

小程序登錄態(tài)維護,小程序怎么保持登錄態(tài)

  以上就是我的實現(xiàn)方法。調(diào)用wx.login()得到code后請求服務(wù)器獲取openid與session_key緩存在服務(wù)器當(dāng)中。其中生成一個隨機數(shù)為key,value為openid與session_key。然后返回到小程序通過wx.setStorageSync('LoginSessionKey',得到的隨機數(shù)key)緩存在小程序當(dāng)中。每當(dāng)我們?nèi)フ埱蠓?wù)器時帶上LoginSessionKey即可給服務(wù)器讀取從而判斷用戶是否在登錄。是不是很簡單呢?
 

HiShop小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁面,所看即所得,只需要美工就能做出精美商城。

更多小程序開發(fā)案例,盡在:http://zytcm.com.cn/xiaocx/kaifa.html 

電話咨詢 預(yù)約演示 0元開店