微信登录signature校验失败
发布于 5 年前 作者 tanjuan 1178 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

授权登录获取用户信息返回的signature,有延迟,导致sha1校验的时候失败,后续请求的时候才会成功。

左边的2个红框是微信返回的。右边是我程序按照sha1算法计算出来。

请立即解决下~!

2 回复

wx.login({

  success (res) {

    if (res.code) {

      wx.request({

// 1、服务器api调用 微信 auth.code2Session 获取openid、session_key等信息、缓存在redis中,以备后用

// 2、服务端根据获取的 openid、判断用户是否存在数据库中等计算

        url: ‘api/onLogin’, 

        data: {

          code: res.code

        },

success: function (res) {

// 1、服务端返回 登录信息,如果信息不完善则会调用 wx.getUserInfo 获取用户信息,否则直接返回 登录后的token

// 2、这个地方出错的关键: 通过微信获取到用户信息以后,从redis 取得之前的openid、session_key等信息,

// 加上用户信息 进行 signature = sha1( rawData + session_key ) 校验,这个地方有时候会出现校验失败的情况

console.log(res.data)

  }

      })

    } else {

      console.log(‘登录失败!’ + res.errMsg)

    }

  }

})

代码能不能贴出来看看啊  你这样说也不知道你问题出在哪里

回到顶部