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,但授权按钮回调中却能获取到。

主要原因:

  1. QQ小程序平台对uni.getUserInfo接口的实现与微信小程序存在差异
  2. 在QQ小程序中,signature字段需要通过其他方式获取

解决方案:

  1. 使用QQ小程序原生API qq.getUserInfo替代uni.getUserInfo
  2. 或者直接从授权按钮的回调中获取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);
  }
});
回到顶部