首页 > 微信 > 详细

微信小程序获取用户信息,获取微信运动数据

时间:2020-03-17 19:12:34      阅读:197      评论:0      收藏:0      [点我收藏+]

本篇主要描述微信小程序的后台登录,获取用户信息,解密微信运动数据

首先 登录由前端发起 小程序授权用户才能进行登录 前端具体接口信息可登录微信开放平台进行查看

技术分享图片

前端调用 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

微信小程序获取用户信息,获取微信运动数据

原文:https://www.cnblogs.com/dreamsun/p/11176356.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!