关于微信小程序拒绝授权后,重新授权并获取用户信息
最近公司做了一些有关微信小程序的项目,涉及到授权获取用户基本信息,但是在拒绝授权之后就不会再出现授权窗口;
看网上也有很多人遇到了同样的问题,所以记录下来我的处理方法,供大家和自己学习和记录:
当调用小程序 wx.getUserInfo(OBJECT) 获取用户基本信息时,需要用户进行授权操作,如果用户点击了拒绝,则再次调用该方法就不会出现对应的授权窗口,很是让人困惑;
找了许久,最后让我发现了它:------> wx.openSetting(OBJECT),下面让我们认识一下:
wx.openSetting(OBJECT)
设置:调起客户端小程序设置界面,返回用户设置的操作结果;基础库 1.1.0 开始支持,低版本需做“兼容处理”
通过该方法可继续进行授权操作,不多做解释,直接上代码:
1 var loginStatus = true; 2 getPromission: function() { 3 if (!loginStatus) { 4 wx.openSetting({ 5 success: function (data) { 6 if(data) { 7 if (data.authSetting["scope.userInfo"] == true) { 8 loginStatus = true; 9 wx.getUserInfo({ 10 withCredentials: false, 11 success: function (data) { 12 console.info("2成功获取用户返回数据"); 13 console.info(data.userInfo); 14 }, 15 fail: function () { 16 console.info("2授权失败返回数据"); 17 } 21 }); 22 } 23 } 25 }, 26 fail: function () { 27 console.info("设置失败返回数据"); 28 } 32 }); 33 }else { 34 wx.login({ 35 success: function (res) { 36 if (res.code) { 38 wx.getUserInfo({ 39 withCredentials: false, 40 success: function (data) { 41 console.info("1成功获取用户返回数据"); 42 console.info(data.userInfo); 43 }, 44 fail: function () { 45 console.info("1授权失败返回数据"); 46 loginStatus = false; 47 // 显示提示弹窗 48 wx.showModal({ 49 title: '提示标题', 50 content: '提示内容', 51 success: function (res) { 52 if (res.confirm) { 53 console.log('用户点击确定') 54 } else if (res.cancel) { 55 wx.openSetting({ 56 success: function (data) { 57 if (data) { 58 if (data.authSetting["scope.userInfo"] == true) { 59 loginStatus = true; 60 wx.getUserInfo({ 61 withCredentials: false, 62 success: function (data) { 63 console.info("3成功获取用户返回数据"); 64 console.info(data.userInfo); 65 }, 66 fail: function () { 67 console.info("3授权失败返回数据"); 68 } 72 }); 73 } 74 } 76 }, 77 fail: function () { 78 console.info("设置失败返回数据"); 79 } 83 }); 84 } 85 } 86 }); 87 } 91 }); 92 } 93 }, 94 fail: function () { 95 console.info("登录失败返回数据"); 96 }100 }); 101 } 102 }
以上是我实现的内容,没做处理,希望对大家有帮助!!!喷子勿喷
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix