这几天又涉及到解密的几个功能,对 session_key 还是有很多疑惑:
文档上说 session_key 是有有效期的, 可以通过 wx.checkSession 去检验,过期了,执行wx.login,就能获取新的 session_key
1:所以想问一下,如果 session_key 过期了,但是我们不去执行 wx.login (我们自己有个utoken的登录状态)
那微信会自己生成新的 session_key 吗?
2: 如果说微信不生成新的 session_key,那么理应我们去解密的时候是不会解密失败的?
因为都用着旧的 session_key。
3:但如果微信生成新的 session_key,那我们用 wx.checkSession 去检验,不就是还没过期吗?
(这个有效期是怎么判断的)
4:我们之前使用授权手机号的一个情况:
(前提:我们没有wx.checkSession后执行wx.login,而是根据我们的utoken过期后,再去执行wx.login)
这样用户授权手机号,就会存在解密失败的情况,这说明 session_key 过期后,微信生成了新的 session_key ,那么我在执行 wx.login后,是不是这个 session_key 又要更新了?
(因为我拿着第一次的密文去重试解密的时候,解密失败,可见又生成了新的 session_key)
综合以上,还是想细致的了解一下:
1:session_key 都什么情况下会更新,哪些更新是我们触发的,哪些是微信触发的
2:session_key的有效期是怎么判断的?
我知道获取手机号前,要先wx.login一下,是不是所有的解密前都要先wx.login一下。
我们目前解密的场景里,有从服务器读取数据,如果utoken过期了,那么会执行wx.login,所以怕执行了两次wx.login,最后导致解密失败