11月23, 2021

小程序登录和用户信息获取

兄弟们,我又要写一篇小程序登录相关的文章了,因为时代变了,小程序接口又又又又调整了。

2022-05-09 调整

小程序用户头像昵称获取规则调整公告

*.png

此后小程序无法直接获取头像和昵称。只能通过个人中心或设置等页面使用头像昵称填写能力让用户完善个人资料。小程序这样搞了,微信网页和公众号还会远吗?

*.png

参考头像昵称填写

2021-12-27 调整

open-data没用了。

小程序用户信息相关接口调整公告

组件功能调整

开发者在未获取用户明示同意的情况下通过 组件 在小程序中展示用户个人信息,用户容易误以为自己的个人信息在未授权的情况下,被小程序获取。平台计划从2022年2月21日24时起回收通过展示个人信息的能力,若小程序需收集用户昵称头像等信息,可以通过 头像昵称填写功能 功能进行收集。具体回收方式为:

  1. 头像展示 灰色头像
  2. 用户昵称展示“微信用户”
  3. 用户性别、地区、语言展示为为空(“”)

小程序通过展示群名称能力保留,平台会针对小程序生命周期内首次调用该组件展示群名称向用户提示:“群名称仅你可见,小程序无法获取。”

2021-09-26 可使用的功能

当前能获取到的用户信息只有:

  • 昵称nickName,通过wx.getUserProfile获取,每次获取微信均会弹框要求用户授权
  • 头像avatarUrl,通过wx.getUserProfile获取,每次获取微信均会弹框要求用户授权
  • openid,通过wx.login获取到code后,发给后台,后台调用auth.code2Session中提到的url,获取openid
  • unionid,通过wx.login获取到code后,发给后台,后台调用auth.code2Session中提到的url,如果已经在开放平台绑定,则可直接获取unionid

所以用户信息这一块,你会发现用session_key加解密好像不需要了。

但是session_key就没用了吗?不是滴,有些接口还是有用滴,例如获取微信步数的接口wx.getWeRunData ,如果你的应用是根据用户每天运动了多少步去判定用户完成任务与否,给用户发放奖励的话,一旦有鸡贼的用户利用IT知识,拿到了你系统的token,然后每天就可以直接用token调你的接口,给你传假的微信步数数据了。

最简单的想拿昵称和头像,直接调wx.getUserProfile

    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res) => {
        console.log(res)
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })

调用返回的userInfo可以直接读取里面的avatarUrl和nickName。

*.png *.png *.png

2021-09-26 调整

微信公众平台用户信息相关接口调整公告

不管是小程序、公众号还是Open平台(包括微信网页),用户性别及地区信息以及语言信息都只返回为空或者默认值了。腾讯称这样做是为了保护用户隐私。

*.png

*注:字段名均保持不变,小程序与小游戏获取用户信息接口“用户性别”字段名为gender;Open 平台授权接口“用户性别”字段名为 sex

不过这个修改应该影响不大,因为它还是返回值的,只是返回的值没有了参考意义,对于老用户,可以不去管它;对于新用户,在开发的时候就可以不存储这几个字段了。

哦,对了,这里还是有个坑,现在的小程序文档并没有备注它改成了统一返回默认值,比如这个文档:UserInfo 所以用户如果不看公告的话,可能还被蒙在鼓里,纳闷,为啥获取不到性别和地区咧。就比如这位大兄弟的灵魂拷问:获取用户信息UserInfo的性别返回0?

2021-04-15 调整

这波更新影响比较大,更新了:

  • wx.login,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID
  • wx.getUserInfo、
  • 新增了getUserProfile,开发者每次通过该接口获取用户个人信息均需用户确认,请开发者妥善保管用户快速填写的头像昵称,避免重复弹窗。

这次更新后的最佳实践为:

调整后,开发者如需获取用户身份标识符只需要调用wx.login接口即可。

开发者若需要在界面中展示用户的头像昵称信息,可以通过组件进行渲染,该组件无需用户确认,可以在界面中直接展示。

在部分场景(如社交类小程序)中,开发者需要在获取用户的头像昵称信息,可调用wx.getUserProfile接口,开发者每次通过该接口均需用户确认,请开发者妥善处理调用接口的时机,避免过度弹出弹窗骚扰用户。

*.png *.png

小程序登录、用户信息相关接口调整说明

本文链接:https://www.daguanren.cc/post/xiao-cheng-xu-deng-lu-he-yong-hu-xin-xi-huo-qu.html

-- EOF --

Comments