首页IT科技微信小程序授权登录失败什么原因(微信小程序授权获取用户信息之wx.getUserInfo 切换到 wx.getUserProfile的使用(已弃用))

微信小程序授权登录失败什么原因(微信小程序授权获取用户信息之wx.getUserInfo 切换到 wx.getUserProfile的使用(已弃用))

时间2025-09-29 20:08:35分类IT科技浏览6761
导读:更新:wx.getUserProfile( 已弃用...

更新:wx.getUserProfile() 已弃用

wx.getUserProfile()官方也已弃用                    ,详情可参考我的微信小程序授权获取头像昵称的最新形式——头像昵称填写这篇文章                    。感兴趣的小伙伴儿也可往下看                             。

背景

最近在做一个小程序的项目                             ,需要微信授权获取用户信息(用户头像                    、昵称                             、性别及地区信息等)          ,在微信小程序官方文档中查看这部分内容               ,由于一开始没有仔细看到wx.getUserInfo已经被回收                             ,于是              ,尝试使用wx.getUserInfo进行授权获取用户信息时并不会有弹框          ,而是直接返回了用户信息                              ,相信很多人也有同样的经历                   ,在此总结一下解决方式          。

官网链接

一          、小程序获取用户信息相关接口调整说明

2021年4月28日24时后发布的小程序新版本     ,开发者无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像               、昵称                             、性别与地区)不再弹出弹窗                              ,将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息)                        ,获取加密后的openID与unionID数据的能力不做调整               。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配                             。 新增getUserProfile接口(基础库2.10.4版本开始支持)                         ,可获取用户头像              、昵称          、性别及地区信息                             ,开发者每次通过该接口获取用户个人信息均需用户确认              。具体接口文档:《wx.getUserProfile接口文档》     ,也可参考下面我的整理

二                              、wx.getUserProfile的使用

1. 之前的wx.getUserInfo接口的使用 <!--index.wxml--> <button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">某个按钮</button> // index.js // // 查看是否授权 // wx.getSetting({ // success(res) { // console.log(res.authSetting); // 现在res.authSetting[scope.userInfo]始终为true // if (res.authSetting[scope.userInfo]) { // // 已经授权                    ,可以直接调用 getUserInfo 获取头像昵称 // wx.getUserInfo({ // success: function(res) { // that.data.userInfo = res.userInfo; // console.log(that.data.userInfo) // } // }) // } // } // }) },

wx.getUserInfo接口的返回参数不变                             ,不再弹出弹窗          ,将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息)但开发者获取的userInfo为匿名信息          。*同时               ,wx.getSetting 接口请求用户的授权状态                             ,返回匿名数据 scope.userInfo 也为 true              ,所以现在通过调用wx.getSetting并不能够判断出是否授权了用户信息;

2. 现在的wx.getUserProfile接口的使用 <!--index.wxml--> <button bindtap="GetUserInfo">某个按钮</button> // index.js /** * 获取用户信息授权 */ GetUserInfo () { var that = this wx.getUserProfile({ desc:用户信息授权, success:(res)=>{ that.data.userInfo = res.userInfo; console.log(that.data.userInfo) }, fail:(res)=>{ // debugger console.log(res) } }

效果如下:

采用wx.getUserProfile接口不需要在使用 button 中的open-type="getUserInfo"及bindgetuserinfo=""属性          ,直接使用在页面产生点击事件(例如 button 上 bindtap 的回调中)后可调用                              ,每次请求都会弹出授权窗口                   ,用户同意后返回 userInfo;

三                   、wx.getUserInfo 切换到 wx.getUserProfile前后对比

更多问题可参考:

微信开放社区—>小程序登录     、用户信息相关接口调整说明

微信开放社区—>小程序登录                              、用户信息相关接口调整更新说明
声明:本站所有文章     ,如无特殊说明或标注                              ,均为本站原创发布                              。任何个人或组织                        ,在未征得本站同意时,禁止复制                        、盗用、采集                         、发布本站内容到任何网站                             、书籍等各类媒体平台                   。如若本站内容侵犯了原著者的合法权益                         ,可联系我们进行处理     。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
火车头采集规则教程(火车头采集网站:快速高效的数据采集利器) 网站日志查询方法及注意事项——便捷查看网站运营数据