微信小程序獲取用戶信息,獲取微信運動數據


本篇主要描述微信小程序的后台登錄,獲取用戶信息,解密微信運動數據

首先 登錄由前端發起 小程序授權用戶才能進行登錄 前端具體接口信息可登錄微信開放平台進行查看

前端調用 wx.login() 獲取臨時登錄憑證code ,並回將code傳到后台服務器,后台服務器通過微信開放的code2Session接口

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

 進行調用,微信接口將返回session_key,openid等信息

請求參數

屬性 類型 默認值 必填 說明
appid string   小程序 appId
secret string   小程序 appSecret
js_code string   登錄時獲取的 code
grant_type string   授權類型,此處只需填寫 authorization_code

返回的 JSON 數據包

屬性 類型 說明
openid string 用戶唯一標識
session_key string 會話密鑰
unionid string 用戶在開放平台的唯一標識符,在滿足 UnionID 下發條件的情況下會返回
errcode number 錯誤碼
errmsg string 錯誤信息

 

 此時 我們可以獲取openid,以及秘鑰session_key,通過前端調用 wx.getUserInfo(Object object)可以獲取到除openid外的其他用戶信息(需判斷是否授權,授權后才能調用),

前端具體接口信息可在微信開放平台查看

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html

wx.getUserInfo會返回UserInfo信息以及encryptedData(包括敏感數據在內的完整用戶信息的加密數據),iv(加密算法的初始向量)

我們也可以利用session_key對session_key進行解密獲取到用戶的具體信息(包含unionId)

具體解密方法給出一個鏈接可以參考這個大哥的 https://www.jianshu.com/p/3170749b6660

微信運動數據需前端調用wx.getWeRunData(Object object)  接口描述

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/werun/wx.getWeRunData.html

該接口會返回encryptedData(微信運動數據的加密信息) iv(加密算法的初始向量)

通過之前獲取的session_key 可對加密信息進行解密 解密方法參照微信用戶數據解密的鏈接

微信小程序登錄流程就是前端返回 code、encryptedData(微信用戶加密信息)、iv,后端根據code通過code2Session接口獲取session_key,

然后用session_key去解密encryptedData來獲取微信用戶數據

注意:前端調用wx.getUserInfo(Object object)  wx.getWeRunData(Object object) 需判斷是否授權

  session_key有過期時間 有效期是30天

  微信小程序前端沒有cookie 前端可以將后台返回的登錄標識存在storage 請求后台時帶上

  微信小程序綁定微信公眾開放平台后,解密信息才會出現unionId

  同一個用戶在微信公眾開放下的不同應用(小程序,公眾號)上有不同的openid 有相同的unionId


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM