久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

微信小程序 獲取用戶信息并保存登錄狀態(tài)

 quasiceo 2018-01-24

 

 

前言、

  微信小程序的運(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)識(shí)或者 session 的標(biāo)識(shí),,而應(yīng)該自己派發(fā)一個(gè) session 登錄態(tài)(請(qǐng)參考登錄時(shí)序圖)。對(duì)于開發(fā)者自己生成的 session,,應(yīng)該保證其安全性且不應(yīng)該設(shè)置較長(zhǎng)的過期時(shí)間,。session 派發(fā)到小程序客戶端之后,,可將其存儲(chǔ)在 storage ,,用于后續(xù)通信使用,。

 

登錄時(shí)序圖

 

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

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

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

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

而密文則在encryptedData這個(gè)字段當(dāng)中。我們?nèi)フ?qǐng)求我們服務(wù)器去解密然后得到敏感信息后則可以保存起來,。

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

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

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

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

 

這時(shí)候我們通過小程序得到的result.encryptedData與result.iv與后端得到的session_key 解密出我們得到的敏感用戶信息了。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多