记录wx.getUserInfo被回收后,小程序升级成wx.getUserProfile的旅程

1,049 阅读2分钟

升级背景

官方说明点这里

image.png

两个重点

  • getUserProfile接口从2.10.4版本基础库开始支持,每次调用均会出现授权弹窗,确保用户信息安全吧
  • getUserInfo接口将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。

数据具体变化

即wx.getUserInfo接口的返回参数不变,但开发者获取的userInfo为匿名信息(标红部分)。

分析小程序全局待修改之处

第一步:找出所有使用了wx.getUserInfo和 < button open-type="getUserInfo"/>的文件

第二步:结合业务和交互来考量,是删还是留

image.png

第三步:整理改动点会影响的页面写一份测试建议

image.png

有趣的收获

  • 之前多处使用wx.getUserInfo(),其实认真分析后,真正需要拿到用户信息的地方只有3处,其他地方全部删掉(爽!)

    1. 注册页面
    2. 登录页面(如果未授过权,点击授权时)
    3. 分享信息确认页(客户点击别人分享的内容,点击看一看/去加入时)
  • 有些场景仅仅是展示当前微信用户的头像和昵称,可以使用open-data来代替调用api获取。 open-data文档在此

    <open-data type="groupName" open-gid="xxxxxx"></open-data>
    <open-data type="userAvatarUrl"></open-data>
    <open-data type="userGender" lang="zh_CN"></open-data>

image.png

  • 根据业务和交互体验来协商:退出登录会调用解绑用户信息的接口,参数里需要携带用户的encryptedData等加密数据 思考:因为获取用户信息需要弹窗授权,退出登录这里出现弹窗是不合适的,并且我当前登录的用户信息一定储存过了,后端是否可以根据别的信息如token什么的拿到用户信息呢。后来问了后端,后端说这里本来就不需要传参,于是,我删掉了那堆代码,这个结果nice~

最后

还是需要多关注微信小程序的每周公告,这样可以提前预知问题,及时调整,保证线上的数据正常显示。