banro
banro
  • 发布:2018-09-30 22:24
  • 更新:2020-01-02 19:40
  • 阅读:25917

uni-app小程序登录无法获取授权和用户信息

分类:uni-app

代码如下,无法获取到登录信息,而微信开发者工具中提示一条警告信息

uni.login({  
                provider: 'weixin',  
                success: function (loginRes) {  
                    // loginRes 实际输出的是  {"errMsg":"login:ok","code":"0230gxqx1BgRRh0afIox1UAOqx10gxqF"}  
                    // 并不存在 authResult 属性。  
                    // 微信开发者工具此处提示 获取 wx.getUserInfo 接口后续将不再出现授权弹窗,请注意升级  
                    uni.getUserInfo({  
                        provider: 'weixin',  
                        withCredentials:true,  
                        success: function (infoRes) {  
                            console.log('用户昵称为:' + infoRes.userInfo.nickname);  
                        },  
                        fail:function(res){  
                            // 这里res = {"errMsg":"getUserInfo:fail scope unauthorized"}   
                            console.log('res='+JSON.stringify(res))  
                        }  
                    });  
                },  
                fail:function(es){  
                    console.log('fail')  
                    console.log(es)  
                }  
            });

微信开发者工具中警告信息

获取 wx.getUserInfo 接口后续将不再出现授权弹窗,请注意升级
参考文档: https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=1650183953&docid=0000a26e1aca6012e896a517556c01

2018-09-30 22:24 负责人:无 分享
已邀请:
没得好名字

没得好名字 - 90后前端妹子一枚

请问怎么直接获取用户信息呢,一定要用户确认授权?

  • lxjnoone

    <button @getuserinfo="getUserInfo" open-type="getUserInfo" type="primary">授权</button>

    以这种按钮形式,便可以获取用户信息。

    getUserInfo方法:

    getUserInfo(e){

    //e就包含着信息

    }

    2020-04-06 19:59

  • v***@163.com

    完美解决 困扰我3天的问题

    2020-10-26 20:49

s***@gmail.com

s***@gmail.com - 哇丶大大大

要想获取openid 需要再请求个接口 服务端根据code返回用户信息,小程序官方文档里有

tatc

tatc - 不知道说什么好

https://developers.weixin.qq.com/miniprogram/dev/api/wx.openSetting.html
看微信的文档,这个问题我今天也问了,问题出在了,微信的api调用失败上了

5***@qq.com

5***@qq.com

这是 微信 升级了,

和code 换 openid 是另外一回事

用户信息本来就是不需要后端能获取的

可能是你之前有拒绝过弹窗,所以直接进入了 失败, 在调用前 先询问下授权

uni.getSetting({
success(res) {
if (!res.authSetting['scope.userInfo']) {
wx.authorize({
scope: 'scope.userInfo',
success() {
// 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
wx.startRecord()
}
})
}
}
});

2***@qq.com

2***@qq.com

这个可以使用支付宝小程序授权吗 我用 uni.login({ 获取不到 支付宝的code

  • 2***@qq.com

    请问可以支付宝授权吗?

    2021-03-19 17:19

4***@qq.com

4***@qq.com

我也是一样 现在能用了吗?

scxp

scxp

前面的代码其实都没错,不过现在你需要自己写后台程序(例如PHP、Java),去获得敏感信息

uni.getUserInfo({    
                        provider: 'weixin',    
                        withCredentials:true,    
                        success: function (infoRes) {    
                           //用wx.request去发起服务器请求,就是把code传给后台,让后台去请求微信的官方接口获得openId和session-key。  
                        },  

官方文档,可以参考这个:https://developers.weixin.qq.com/miniprogram/dev/api-backend/code2Session.html

该问题目前已经被锁定, 无法添加新回复