免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動推薦你的品牌,搶占AI流量入口!  點(diǎn)擊查看

小程序模板網(wǎng)

微信小程序維護(hù)登錄態(tài)與獲取用戶信息

發(fā)布時間:2018-02-10 11:43 所屬欄目:小程序開發(fā)教程

前言、

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

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

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

  通過 wx.login() 獲取到用戶登錄態(tài)之后,需要維護(hù)登錄態(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ù)通信使用。

 

登錄時序圖

 

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

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

二、用戶數(shù)據(jù)的加解密

通過wx.login()登錄之后。我們可以通過wx.getUserInfo()獲取用戶信息。其中一些不敏感的信息在返回的 result中的userInfo里。如想要獲取敏感信息。openid,unionid之類的。則需要從密文中去解密得到。

而密文則在encryptedData這個字段當(dāng)中。我們?nèi)フ埱笪覀兎?wù)器去解密然后得到敏感信息后則可以保存起來。

加密數(shù)據(jù)解密算法

接口如果涉及敏感數(shù)據(jù)(如wx.getUserInfo當(dāng)中的 openId 和unionId ),接口的明文內(nèi)容將不包含這些敏感數(shù)據(jù)。開發(fā)者如需要獲取敏感數(shù)據(jù),需要對接口返回的加密數(shù)據(jù)( encryptedData )進(jìn)行對稱解密。 解密算法如下:

  1. 對稱解密使用的算法為 AES-128-CBC,數(shù)據(jù)采用PKCS#7填充。
  2. 對稱解密的目標(biāo)密文為 Base64_Decode(encryptedData),
  3. 對稱解密秘鑰 aeskey = Base64_Decode(session_key), aeskey 是16字節(jié)
  4. 對稱解密算法初始向量 iv 會在數(shù)據(jù)接口中返回。

微信官方提供了多種編程語言的示例代碼(點(diǎn)擊下載)。每種語言類型的接口名字均一致。調(diào)用方式可以參照示例。


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.szcjxy.com/wxmini/doc/course/21956.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢: 點(diǎn)擊咨詢
在線客服