最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年05月10日 10:44:00   作者:東邊的小山  
這篇文章主要介紹了微信小程序獲取用戶信息并保存登錄狀態(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ā)者要注意不應該直接把 session_key、openid 等字段作為用戶的標識或者 session 的標識,而應該自己派發(fā)一個 session 登錄態(tài)(請參考登錄時序圖)。對于開發(fā)者自己生成的 session,應該保證其安全性且不應該設置較長的過期時間。session 派發(fā)到小程序客戶端之后,可將其存儲在 storage ,用于后續(xù)通信使用。

登錄時序圖

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

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

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

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

而密文則在encryptedData這個字段當中。我們去請求我們服務器去解密然后得到敏感信息后則可以保存起來。

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

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

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

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

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

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

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

相關文章

  • 關于javascript獲取內聯(lián)樣式與嵌入式樣式的實例

    關于javascript獲取內聯(lián)樣式與嵌入式樣式的實例

    這篇文章主要介紹了關于javascript獲取內聯(lián)樣式與嵌入式樣式的實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • js實現(xiàn)表單檢測及表單提示的方法

    js實現(xiàn)表單檢測及表單提示的方法

    這篇文章主要介紹了js實現(xiàn)表單檢測及表單提示的方法,涉及javascript表單元素提示效果的相關技巧,非常簡單實用,需要的朋友可以參考下
    2015-08-08
  • 微信JS SDK接入的幾點注意事項(必看篇)

    微信JS SDK接入的幾點注意事項(必看篇)

    下面小編就為大家?guī)硪黄⑿臞S SDK接入的幾點注意事項(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • js console.log打印對象時屬性缺失的解決方法

    js console.log打印對象時屬性缺失的解決方法

    在編寫代碼時,我們常常用 console.log() 的方式將信息在控制臺中打印出來以幫助我們進行前端調試,那么console.log打印對象時屬性缺失怎么辦?下面我們就一起來了解一下解決方法
    2019-05-05
  • typescript在node.js下使用別名(paths)無效的問題詳解

    typescript在node.js下使用別名(paths)無效的問題詳解

    這篇文章主要給大家介紹了關于typescript在node.js下使用別名(paths)無效問題的相關資料,文中通過圖文以及示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-07-07
  • JS對象創(chuàng)建的幾種方式整理

    JS對象創(chuàng)建的幾種方式整理

    本文主要介紹了JS對象創(chuàng)建的幾種方式,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • uniapp中常用的事件處理方法詳解

    uniapp中常用的事件處理方法詳解

    在UniApp中事件處理非常重要,通過事件處理可以實現(xiàn)用戶與應用程序之間的交互,這篇文章主要給大家介紹了關于uniapp中常用的事件處理方法的相關資料,需要的朋友可以參考下
    2023-12-12
  • ECharts兩種動畫效果完整代碼

    ECharts兩種動畫效果完整代碼

    這篇文章主要給大家介紹了關于ECharts兩種動畫效果的相關資料,在做項目時當我們用到echarts圖表時,大部分產(chǎn)品經(jīng)理都會要求我們給圖表加上一些動畫效果,讓頁面看起來更加炫酷,需要的朋友可以參考下
    2023-07-07
  • JS event使用方法詳解

    JS event使用方法詳解

    event代表事件的狀態(tài),例如觸發(fā)event對象的元素、鼠標的位置及狀態(tài)、按下的鍵等等。 event對象只在事件發(fā)生的過程中才有效。
    2008-04-04
  • 微信小程序頁面跳轉功能之從列表的item項跳轉到下一個頁面的方法

    微信小程序頁面跳轉功能之從列表的item項跳轉到下一個頁面的方法

    這篇文章主要介紹了微信小程序頁面跳轉功能之從列表的item項跳轉到下一個頁面的方法,結合具體實例形式總結分析了微信小程序頁面跳轉及列表item項跳轉頁面的相關操作技巧,需要的朋友可以參考下
    2017-11-11

最新評論

星座| 温宿县| 石渠县| 榕江县| 长泰县| 舞钢市| 德惠市| 满城县| 图们市| 宁海县| 梨树县| 克东县| 军事| 嘉荫县| 莱西市| 民乐县| 滦南县| 清苑县| 滦南县| 通城县| 莱西市| 夏津县| 仁怀市| 武邑县| 娱乐| 交口县| 嘉兴市| 三明市| 定襄县| 汨罗市| 自治县| 吐鲁番市| 丽水市| 乾安县| 汉川市| 宁夏| 秭归县| 铜川市| 孟州市| 蓝田县| 从江县|