欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年05月10日 10:44:00   作者:東邊的小山  
這篇文章主要介紹了微信小程序獲取用戶(hù)信息并保存登錄狀態(tài),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

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

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

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

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

登錄時(shí)序圖

從上圖可以看出。當(dāng)我們通過(guò)wx.login()獲取code的后,發(fā)送給我們的服務(wù)器,然后去請(qǐng)求微信服務(wù)器換取得到對(duì)應(yīng)的openid與session_key,openid是該用戶(hù)在小程序中的唯一標(biāo)識(shí)用于模板通知之類(lèi)的。session_key就是用來(lái)解密用戶(hù)的敏感信息。unionid之類(lèi)的。unionid是微信用戶(hù)在所有微信平臺(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。然后返回到小程序通過(guò)wx.setStorageSync('LoginSessionKey',得到的隨機(jī)數(shù)key)緩存在小程序當(dāng)中。每當(dāng)我們?nèi)フ?qǐng)求服務(wù)器時(shí)帶上LoginSessionKey即可給服務(wù)器讀取從而判斷用戶(hù)是否在登錄。是不是很簡(jiǎn)單呢?

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

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

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

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

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

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

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

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

官方給出的解密文檔:https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html

以上所述是小編給大家介紹的微信小程序獲取用戶(hù)信息并保存登錄狀態(tài)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • js仿QQ中對(duì)聯(lián)系人向左滑動(dòng)、滑出刪除按鈕的操作

    js仿QQ中對(duì)聯(lián)系人向左滑動(dòng)、滑出刪除按鈕的操作

    這篇文章主要介紹了js仿QQ中對(duì)聯(lián)系人向左滑動(dòng)、滑出刪除按鈕的操作,即編寫(xiě)一個(gè)js向左滑動(dòng)刪除 交互特效的插件,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 關(guān)于Object.entries()方法的使用和實(shí)現(xiàn)方式

    關(guān)于Object.entries()方法的使用和實(shí)現(xiàn)方式

    這篇文章主要介紹了關(guān)于Object.entries()方法的使用和實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • JavaScript繼承定義與用法實(shí)踐分析

    JavaScript繼承定義與用法實(shí)踐分析

    這篇文章主要介紹了JavaScript繼承定義與用法,結(jié)合實(shí)例形式分析了JavaScript面向?qū)ο蟪绦蛟O(shè)計(jì)中基類(lèi)的定義、原型繼承以及調(diào)用父類(lèi)構(gòu)造函數(shù)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)

    微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)

    這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • javascript attachEvent和addEventListener使用方法

    javascript attachEvent和addEventListener使用方法

    attachEvent與addEventListener區(qū)別 適應(yīng)的瀏覽器版本不同,同時(shí)在使用的過(guò)程中要注意
    2009-03-03
  • 英文首字母全大寫(xiě)的js實(shí)現(xiàn)腳本

    英文首字母全大寫(xiě)的js實(shí)現(xiàn)腳本

    輸入內(nèi)容活直接點(diǎn)轉(zhuǎn)換即可,講單詞的首字母大寫(xiě)。
    2008-09-09
  • JS延遲加載的幾種方式小結(jié)

    JS延遲加載的幾種方式小結(jié)

    JS延遲加載,也就是等頁(yè)面加載完成之后再加載 JavaScript 文件,JS延遲加載有助于提高頁(yè)面加載速度,本文小編給大家介紹了JS延遲加載的幾種方式小結(jié),感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-08-08
  • 分享5個(gè)小技巧讓你寫(xiě)出更好的 JavaScript 條件語(yǔ)句

    分享5個(gè)小技巧讓你寫(xiě)出更好的 JavaScript 條件語(yǔ)句

    在使用 JavaScript 時(shí),我們常常要寫(xiě)不少的條件語(yǔ)句。這里有五個(gè)小技巧,可以讓你寫(xiě)出更干凈、漂亮的條件語(yǔ)句。需要的朋友跟隨小編一起學(xué)習(xí)吧
    2018-10-10
  • js常用方法示例梳理(總結(jié)篇)

    js常用方法示例梳理(總結(jié)篇)

    這篇文章主要為大家介紹了js常用的方法示例梳理總結(jié)及功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 如何用JavaScript實(shí)現(xiàn)功能齊全的單鏈表詳解

    如何用JavaScript實(shí)現(xiàn)功能齊全的單鏈表詳解

    這篇文章主要給大家介紹了關(guān)于如何用JavaScript實(shí)現(xiàn)功能齊全的單鏈表的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02

最新評(píng)論