收藏
回答

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

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

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

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

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

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

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



- 预期表现

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


- 复现路径


- 提供一个最简复现 Demo


最后一次编辑于  07-12  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 痛快科技
    痛快科技
    07-12

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

    07-12
    赞同
    回复 2
    • 黄小贱
      黄小贱
      07-15

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

      07-15
      回复
    • 痛快科技
      痛快科技
      07-15
      用户在小程序的次均停留时间不会很长,可以根据这个做缓存过期时间
      07-15
      回复
  • 对方正在输入
    对方正在输入
    08-20

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


    08-20
    赞同
    回复