收藏
回答

咨询几个关于session_key的问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 wx.login 客户端 7.0.4 2.7.0


这几天又涉及到解密的几个功能,对 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的有效期是怎么判断的?





回答关注问题邀请回答
收藏

1 个回答

  • 见习
    见习
    2019-05-22

    我知道获取手机号前,要先wx.login一下,是不是所有的解密前都要先wx.login一下。

    我们目前解密的场景里,有从服务器读取数据,如果utoken过期了,那么会执行wx.login,所以怕执行了两次wx.login,最后导致解密失败

    2019-05-22
    有用 1
    回复 1
    • EmeraldDream
      EmeraldDream
      2020-08-11
      楼主 解决了吗
      2020-08-11
      回复
登录 后发表内容