收藏
回答

用户验签时signature和sha1不匹配导致无法获取用户信息

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.getUserInfo 客户端 7.0.4 2.0.4

- 当前 Bug 的表现(可附上截图)

在获取用户数据时,通过 signature 和 sha1 的比对来判断信息是否准确完整。

在实际使用中,频繁发生 signature 和 sha1 数据不匹配的情况,在比对不成功的情况下无法跳过验证环节获取用户的基本数据。

第一次的验签往往是不通过的,但是第二次微信端返回的 signature 又是正确的。

网上有很多开发者碰到类似的情况,日志截图如下:



- 预期表现

第一次验签即通过,可以正确获取用户信息


- 复现路径


- 提供一个最简复现 Demo


回答关注问题邀请回答
收藏

3 个回答

  • Gogo
    Gogo
    2021-07-23

    所以2021年7月份了,这个问题还是存在。

    调式基础库:2.17.0

    解决方案就是:

    点击"清缓存",全部都清除

    2021-07-23
    有用
    回复
  • 对方正在输入
    对方正在输入
    2019-08-20

    wx.getuserinfo每次返回的signature变化,不能和sha1 数据匹配,提示签名错误,请问是什么原因?帮助解决下~非常感谢


    2019-08-20
    有用
    回复
  • 痛快科技
    痛快科技
    2019-07-12

    获取用户信息时,先checkSession,如果过期了需要调用login,获取新的session,再getUserInfo

    2019-07-12
    有用
    回复 3
    • 黄小贱
      黄小贱
      2019-07-15

      checkSession 的话,假如本地服务器 session 早于微信 session_key 过期,那么即便 checkSession 后验证 session_key 没有过期,还是需要执行 login 流程。这个时候还是会有这个问题吧?或者说我需要怎么去修改流程?

      2019-07-15
      回复
    • 痛快科技
      痛快科技
      2019-07-15
      用户在小程序的次均停留时间不会很长,可以根据这个做缓存过期时间
      2019-07-15
      回复
    • 曾经
      曾经
      2019-09-24
      我也遇到这个问题,请问怎么解决的,可以加下QQ 35611300吗
      2019-09-24
      回复
登录 后发表内容