- 当前 Bug 的表现(可附上截图)
授权登录获取用户信息返回的signature,有延迟,导致sha1校验的时候失败,后续请求的时候才会成功。
左边的2个红框是微信返回的。右边是我程序按照sha1算法计算出来。
请立即解决下~!
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)
}
}
})