紧急!微信小程序登录接口重大变化,前后端来活了。
2021-05-03 21:24
1101 查看
1. 前言
微信小程序近期发布公告修改了小程序登录和获取用户信息的机制。这对小程序开发者是一个很重要的消息,所以无论后端还是前端都要做出相关业务流程调整。你不改还不行,这个是强制性的。新年刚过就来活了,已经有苦逼码农吐槽,要修改 72 个小程序,58 处逻辑了。接下来胖哥解读一下这个公告,帮你快速进入状态。
2. 公告详情
为优化用户的使用体验,微信小程序平台将进行以下调整:
- 2021 年 2 月 23 日起,通过
wx.login
接口获取的登录凭证可直接换取unionID
- 2021 年 4 月 13 日后发布新版本的小程序,无法通过
wx.getUserInfo
与<button open-type="getUserInfo"/>
获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo
与encryptedData
中的用户个人信息),获取加密后的openID
与unionID
数据的能力不做调整。 - 新增
getUserProfile
接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile 接口文档》
❝请使用
wx.getUserInfo接口或<button open-type="getUserInfo"/>的开发者尽快适配。
开发者工具预计将于2021 年 3 月 3 日后在 nightly 版开始支持,此前开发者可通过真机调试进行适配。
3. 解读
3.1 可以直接获取 unionID
在旧版本中,
wx.login接口获取的登录凭证若需换取
unionID需满足以下条件:
- 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号
- 如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用
❝2 月 23 日后这两个条件都不需要了,开发者调用
wx.login获取的登录凭证可以直接换取unionID,极大方便了我们来判断用户是否是同一个人,实现数据互联互通。
3.2 getUserInfo 废了
wx.getUserInfo和
<button open-type="getUserInfo"/>都将不再弹出弹窗,直接返回匿名的用户个人信息,获取加密后的 openID、unionID 数据的能力不做调整。也就是说该接口获取的用户信息都是匿名的,不能用于处理涉及真实个人信息的业务场景了,所以这个接口基本废了。
新旧接口流程对比
3.3 新的用户信息接口
若开发者需要获取用户的个人信息(头像、昵称、性别与地区),可以通过wx.getUserProfile
接口进行获取,该接口从基础库 2.10.4 版本开始支持,该接口只返回用户个人信息,不包含用户身份标识符。开发者每次通过该接口获取用户个人信息均需用户确认,请开发者妥善保管用户快速填写的头像昵称,避免重复弹窗。
❝这就需要在后端增加一个判断用户是否在后台保存了相关信息的判断接口,来决定是否要弹窗授权。
4. 总结
调整后,开发者如需获取用户身份标识符只需要调用
wx.login接口即可。开发者若需要在界面中展示用户的头像昵称信息,可以通过
<open-data>组件进行直接渲染,不需要用户确认也不需要调用 Api,可以在界面中直接展示。如果需要获取用户信息可调用
wx.getUserProfile接口,但是开发者每次通过该接口均需用户确认,需要自行制定策略避免过度弹出弹窗骚扰用户,影响用户体验。看完这个赶紧看看有没有涉及到你的开发任务,合理排期避免手忙脚乱。我是:码农小胖哥,多多关注,为你带来最实用的编程资讯。
相关文章推荐
- 基于java的微信小程序的实现(二)登录,注册,注销接口的实现
- 微信小程序授权登录接口
- thinkPHP5.0开发微信小程序登录接口signature验证失败
- 微信小程序商城版 java接口登录支付增删改查检索分页,支持的顶一下
- 微信小程序之授权登录
- django 注册、登录及第三方接口程序(4):扩展邮箱注册,登录,微博登录
- 微信小程序登录逻辑
- 用Jmeter做微信小程序项目接口测试【案例】
- android app使用微信登录接口回调没有被执行的问题研究
- 微信小程序商城-ecshop插件接口
- 微信小程序非开放接口开发,token使用
- 微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)
- 微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
- 微信小程序ES6方法Promise封装接口
- 微信登录小程序
- 微信小程序,授权登录,缓存
- 微信硬件蓝牙jsapi开发之onWXDeviceStateChange接口实现(12)--监听蓝牙状态变化接口
- 微信端开发--登录小程序步骤
- django 注册、登录及第三方接口程序(2):扩展User表
- 微信小程序前端+后台php实现用户免登录