前言
每次一动手就是从授权登录开始,每次都会忘了整个流程,现在这里记录下整个流程方便下一次直接复制,也放出来供大家参考参考~
同时,官方宣布2021年4月13日后发布的小程序新版本,无法通过wx.getUserInfo与< button open-type=“getUserInfo” />获取用户个人信息
特此写了这篇文章兼容4.13日前的getUserInfo以及之后的getUserProfile接口获取用信息
官方获取用户信息接口调整通知 我整理了以下关键信息:
- 4月13日后发布的新版本小程序,开发者调用wx.getUserInfo或< button open-type=“getUserInfo”/>将不再弹出弹窗,直接返回匿名的用户个人信息,获取加密后的openID、unionID数据的能力不做调整。
如仍使用原来方式将会获得红色区域的匿名信息,即一切流程会非常顺畅,使用wx.getUserInfo获得也很顺畅,但是获得都是匿名信息 - 若开发者调用wx.authorize接口请求scope.userInfo授权,用户侧不会触发授权弹框,直接返回授权成功。
即wx.authorize 只会获得假性的授权成功 - 若开发者调用wx.getSetting接口请求用户的授权状态,会直接读取到scope.userInfo为true
即wx.getSetting去判断是否已授权获取用户信息也是假性的。 - wx.login接口获取的登录凭证可直接换取unionID
- 开发者需要在获取用户的头像昵称信息,可调用wx.getUserProfile接口,开发者每次通过该接口均需用户确认,请开发者妥善处理调用接口的时机,避免过度弹出弹窗骚扰用户。
总结就是 : 之前通过wx.getSetting获取用户是否授权已经无法作为判断依据,wx.authorize无法弹起用户授权弹框,wx.getUserInfo可以直接使用而无阻碍,但是获得的都是匿名信息,即相当于白获取,最后就是wx.openSetting接口官方并没有表示,由于文章撰写时间是3月21日,所以我也无法实验该接口能否起作用能够跳转设置页面去授权,但是上面两个接口这样处理也不难猜测这个接口估计使用了去到设置界面也不会有授权用户信息的开关。所以我们只能通过wx.getUserPorifile接口去老实的不厌其烦的让用户授权即刻获取用户信息。同时必须通过bindtap等点击事件才能触发调用授权
正文
一、旧版getUserInfo获取用户信息
wxml设置open-type button
<button bindgetuserinfo="bindGetUserInfo" open-type='getUserInfo'>登录</button>
流程判断如下: