为什么
为什么
  • 发布:2021-09-08 15:11
  • 更新:2021-12-11 17:42
  • 阅读:3462

【报Bug】uni.login中onlyAuthorize参数设置无效,app中微信登录依然不返回code

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10企业版

HBuilderX类型: 正式

HBuilderX版本号: 3.2.3

手机系统: Android

手机系统版本号: Android 9.0

手机厂商: 小米

手机机型: note8

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
     uni.login({  
					provider:"weixin",  
					onlyAuthorize:true,  
			     	success(loginRes) {  
						console.log("wxlogin",loginRes);  
   
					let reqparam={  
						code : loginRes.code,  
						channel:that.$runplatform  
					}  
					   
			     	},  
					fail(e) {  
						uni.showToast({  
							title:"失败"+e.errMsg  
						});  
						console.log("登录失败");  
						console.log(e);  
					}  
			 });

操作步骤:

在app 中调用微信授权登录 uni.login。设置参数为 onlyAuthorize:true
即可复现。返回值没有code还是 只有 authResult

预期结果:

返回 code.由服务端来换取openid和unionid

实际结果:
{  
	"authResult": {  
		"access_token": "48_v15-uMrU23CufomJX8BFsWNUz8yidvtA2S7-5-sDQcDEv8mfe6bGvjmWQNbwxWJNrKzN_2IcCMkOwt8o5HxT-mp-5iMsRguWVcbcEGjesYI",  
		"expires_in": 7200,  
		"refresh_token": "48_WVKEFnzl2aNclCn0gXyRV-JbJIA29JQobmU8tAq3i9ubFELmwYdt3BMiyTHLnvHS1RantZSxd0CgsAIXo7GkZ_YG2WphuVhkZeloPkFTNzs",  
		"openid": "oRrdQt1j9yAfQtgY4gDFJHLzxdsU",  
		"scope": "snsapi_userinfo",  
		"unionid": "oU5Yyt2blg4mHvRe8dJoz974RkAk"  
	},  
	"errMsg": "login:ok"  
}  

bug描述:

uni.login中的onlyAuthorize 参数 设置无效。
问题复现步骤:
在app中用微信登录。

   uni.login({  
					provider:"weixin",  
					onlyAuthorize:true,  
			     	success(loginRes) {  
}  
});

此时loginres返回的依然是authresult没有code

2021-09-08 15:11 负责人:无 分享
已邀请:
者行孙

者行孙

+1,

希望官方能把该死的 appsecret 改成选填的,开启 onlyAuthorize 只拿 code 不应该填 appsecret

{  
	"code": -7,  
	"message": "业务参数配置缺失,http://ask.dcloud.net.cn/article/282"  
}
1***@qq.com

1***@qq.com

uni.login加了 onlyAuthorize: true后,调用uni.getUserInfo没有任何返回,很奇怪。不加就能正常调用,文档也没写清楚,有没有人知道咋整。

2***@qq.com

2***@qq.com - lq

同样遇到,怎么解决?!!!

  • 为什么 (作者)

    等官方修复,还有个问题:若关联了开放平台,有时候会返回unionid,有时候不会,哎。不知道咋绕过去


    2021-09-10 08:00

  • 2***@qq.com

    回复 为什么: 这个没发现,等不及了暂时直接把access_token和openid发后端去获取用户信息了


    2021-09-10 09:23

  • 为什么 (作者)

    回复 2***@qq.com: 我也是如此处理的,等不了了,只能改后端代码。直接把openid和unionid传后端处理的


    2021-09-14 09:09

Dorisup

Dorisup

我也遇到同样问题:

后面发现onlyAuthorize参数是要求版本 3.2.3 +,目前使用的最新版本是 3.2.3,于是下载3.2.6.20210901-alpha版本Hbuildx,重新打包自定义基座, 成功返回了code

1***@163.com

1***@163.com

相同的问题,怎么解决,想改安卓源码,github上代码却不是最新的

  • Dorisup

    我是换成alpha版本的Hbuildx开发工具,设置onlyAuthorize:true,,成功返回了code,现在我的版本是最新3.2.8.20210923-alpha,也不需要配置appsecret


    2021-09-27 16:17

  • 1***@163.com

    回复 Dorisup: enen 更新了3.2.6的基座和3.2.9的hbuilder后可以了


    2021-10-12 14:46

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