小程序用户数据问题
来源:4-13 在 Vue SSR 中实现微信网页授权机制与用户资料读取
鸡肋2016
2019-05-31
老师,您好!
通过这门课程我成长了很多,非常感谢您!
我关于微信小程序用户数据的理解:
基础信息,昵称/头像……,小程序在用户授权后通过getUserInfo自己都可以拿到。
敏感数据(openid/session_key/unionid),小程序是不能直接拿到的。
开发服务器有两种获取方式:
1、直接通过小程序传过来的jscode,加上appid/app_secriet,向微信服务器直接获取。
2、小程序把通过wx.login({})拿到的jscode 和 通过getUserInfo获取到encryptedData和iv传给开发服务器,开发服务器向微信服务器通过jscode换取(openid/session_key/unionid)。开发服务器拿到encryptedData和iv和session_key,可以通过加密数据解密算法去解密得到敏感。
我有疑问,为什么开发服务器通过jscode就已经获取到敏感数据了,为什么还要多此一举去使用加密数据解密算法???
老师麻烦回答一下!!
2回答
-
Scott
2019-06-02
他们有一些差异性的,可以看下这个文档,关注前面三条情况就好了:
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html
- 调用接口 wx.getUserInfo,从解密数据中获取 UnionID。注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。
- 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户再次授权。
- 如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过 wx.login + code2Session 获取到该用户 UnionID ,无须用户再次授权。
通过是结合起来一起用,如果用户关注过公众号,这里就可以走 code 的形式,如果没走通,就可以退回到让用户授权的情况,也就是弹窗,然年再把 encryptedData 解密去获得敏感信息,之前的回复不严谨
00 -
Scott
2019-06-01
encryptedData 里面应该是不能进一步拿到 openid 和 unionid 的,需要通过 jscode 进一步获得更加敏感的用户 ID
012019-06-01
相似问题