小程序用户数据问题

来源: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 解密去获得敏感信息,之前的回复不严谨

0
0

Scott

2019-06-01

encryptedData 里面应该是不能进一步拿到 openid 和 unionid 的,需要通过 jscode 进一步获得更加敏感的用户 ID

0
1
鸡肋2016
老师的视频课程里,对encryptedData解密去拿到了敏感数据unionid。 文档也说可以对encryptedData解密算法拿到敏感数据呀。 我有疑问: 1、视频里,已经可以通过小程序传过来的code去微信服务器拿到了敏感数据(unionid/openid/session_key)。为什么还要通过(session_key)去解密小程序传过来的encryptedData/iv得到敏感数据unionid? 老师视频里是这么做的,麻烦老师解释一下!!
2019-06-01
共1条回复

开发微信全家桶项目Vue/Node/MongoDB高级技术栈全覆盖

Nuxt/Vue SSR + Koa2 跨栈开发微信公众号+小程序

989 学习 · 401 问题

查看课程