美文网首页
小程序 wx.login 刷新session_key

小程序 wx.login 刷新session_key

作者: YukiWeng | 来源:发表于2020-01-18 13:04 被阅读0次

使用button引导登录

<button open-type="getUserInfo" bindgetuserinfo="xxx" withCredentials></button>

xxx(){
wx.login({
     success(res){
       console.log(res.code)      
     }
   })
}

每次点击登录按钮,经常第一次失败,报500,然后第二次就OK了

原因:
wx.login 每次都会刷新 session_key,session_key 是服务端用于解密数据的关键信息。
button 的信息授权信息获取后,我用 wx.login 刷新 session_key,导致原先session_key 失效,匹配不上,解密失败。

我的解决方法:
在onShow时,就调用一次 wx.login,拿到 code
当用户点击按钮,执行一次 wx.checkSession ,如果session_key 未过期,就直接用这个code
如果过期,就重新 wx.login,并重新用wx.getUserInfo()获取用户信息

官方说法:
wx.login 会刷新session_key。
在userinfo button回调内调用wx.login,开发者获取到session_key是刷新后的session_key,
而userinfo是以刷新前session_key做加密的。所以会解密失败。
建议开发者在获取userinfo等加密数据前,调用wx.login 并对session_key做好维护。
另外提醒:在用户确认授权后,开发者可以通过 wx.getUserInfo 获取最新的数据。

相关文章

网友评论

      本文标题:小程序 wx.login 刷新session_key

      本文链接:https://www.haomeiwen.com/subject/toykzctx.html