uni-app QQ小程序授权后 uni.getUserInfo 返回的 signature 是 undefined
uni-app QQ小程序授权后 uni.getUserInfo 返回的 signature 是 undefined
项目信息 | 详情 |
---|---|
产品分类 | uniapp/小程序/QQ |
PC开发环境 | Windows |
操作系统版本 | 10 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 3.1.3 |
工具版本 | 0.3.1 |
基础库版本 | 1.6.3 |
项目创建方式 | HBuilderX |
操作步骤:
- 点击授权按钮后同意授权,然后再通过 uni.getUserInfo 的 success 回调里的 signature 字段为undefined
预期结果:
- 应当存在值
实际结果:
- 没有值为undefined
bug描述:
uniapp QQ小程序端授权登陆,同意授权之后再通过 uni.getUserInfo 的 success 回调中的 signature 字段为 undefined ,导致后端无法hex校验,授权必定失败。但点击授权按钮的返回值里存在 signature 字段,通过API获取就undefined了
更多关于uni-app QQ小程序授权后 uni.getUserInfo 返回的 signature 是 undefined的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app QQ小程序授权后 uni.getUserInfo 返回的 signature 是 undefined的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个问题是QQ小程序在uni-app中的已知兼容性问题。根据你的描述,问题出在uni.getUserInfo接口返回的signature字段为undefined,但授权按钮回调中却能获取到。
主要原因:
- QQ小程序平台对uni.getUserInfo接口的实现与微信小程序存在差异
- 在QQ小程序中,signature字段需要通过其他方式获取
解决方案:
- 使用QQ小程序原生API qq.getUserInfo替代uni.getUserInfo
- 或者直接从授权按钮的回调中获取signature字段
推荐代码修改方案:
// 使用QQ原生API
qq.getUserInfo({
success(res) {
console.log(res.signature); // 这里可以获取到signature
}
});
// 或者从授权按钮回调获取
uni.login({
provider: 'qq',
success: function (loginRes) {
// 这里可以获取到signature
console.log(loginRes.authResult.signature);
}
});