收藏
回答

不是很明白wx.checkSession的使用场景?

如题, 小程序授权登陆后 后端通过session_key 生成一个token 然后这个token的时效性是我们后端自己维护的 这种场景下用不到checkSession吧。

最后一次编辑于  09-23
回答关注问题邀请回答
收藏

5 个回答

  • 仙森ღ₅₂₀¹³¹⁴
    仙森ღ₅₂₀¹³¹⁴
    09-23

    两种方法:

    第一种:每次拿授权信息前,都去login拿最新的code找后端获取数据。

    第二种:授权时先调用checkSession判断session_key是否失效,失效重新调用wx.login。没失效只给后端iv和data去获取数据,后端照样返回你数据~

    综合:第一种每次刷新登录态,不确定是否有其他影响,第二种是我们现在用的~

    09-23
    赞同 1
    回复 13
    • 梦如南笙
      梦如南笙
      09-23
      用户首次登陆 不就把用户相关的信息存到数据库了? 还要每次都要给后端iv和data获取数据吗? \疑问
      09-23
      回复
    • Doma.
      Doma.
      09-23回复梦如南笙
      看业务需要的,比如获取用户手机号,也是需要 iv 和 encryptedData 来解密的;比如有些业务并不止第一次登录取用户信息,后续还会更新;等等情况。
      09-23
      回复
    • Memory
      Memory
      11-22
      iv和data不是getUserInfo成功后才有吗?
      11-22
      回复
    • 仙森ღ₅₂₀¹³¹⁴
      仙森ღ₅₂₀¹³¹⁴
      11-22回复Memory
      嗯。getPhoneNumber后也有
      11-22
      回复
    • 仙森ღ₅₂₀¹³¹⁴
      仙森ღ₅₂₀¹³¹⁴
      11-22回复梦如南笙
      用户登录态失效?用户删除了小程序重新进来?
      11-22
      回复
    查看更多(8)
  • 小孩孜℡
    小孩孜℡
    09-23

    目前没有用到,每次都是拿最新的code去实时换取的

    09-23
    赞同
    回复
  • 太郎🐱
    太郎🐱
    09-23

    如果不是直接用的微信那一套的话,这个checksession 已经没有意义了!除非两边的过期时间都一致;

    09-23
    赞同
    回复 1
    • 梦如南笙
      梦如南笙
      09-23
      感谢回答 明白了
      09-23
      回复
  • Doma.
    Doma.
    09-23

    微信授权不是给你一个 session_key 么,这个 session_key 不是没有用的,是可以用来解码加密数据的(如果你的业务中有用到)。然后这个 session_key 是有时效性的,它的时效性就是通过 checkSession 来检查的。因此如果 checkSession 说登录失效了,那么通常你就需要重新进行微信授权,更新 session_key。

    09-23
    赞同
    回复 5
    • 梦如南笙
      梦如南笙
      09-23
      嗯 用户首次授权登陆用到了session_key 但是返回前端的token是我们自己维护的 和微信没有关系 所以我感觉如果是这种场景checkSession用不到。 感谢你的回答
      09-23
      回复
    • 慢慢。
      慢慢。
      11-07
      看了wx.checkSession的使用文档,好像不需要传参,那我怎么判断这个sessionKey有没失效?调用就能检测到?我下面那样写就OK了?
      11-07
      回复
    • Doma.
      Doma.
      11-07回复慢慢。
      对,不用传参。checkSession 检查的就是你上次调 wx.login() 得到的 session_key 是否过期。
      11-07
      回复
    • 慢慢。
      慢慢。
      11-07回复Doma.
      那为什么我用实时日志在小程序后台看到的情况是:wx.checkSession是fail状态,表示key失效嘛,那我后面再通过wx.login 拿code从后台置换回来的sessionKey还是之前失效的 sessionKey 是一样的。(而且,我觉得我的key应该没那么快失效才对,这是我觉得很奇怪的)
      11-07
      回复
    • Doma.
      Doma.
      11-07回复慢慢。
      可能你的验证流程有问题,或者实时日志有错误,或者微信官方的 wx.checkSession 文档骗人吧。
      11-07
      回复
  • 未命名科技
    未命名科技
    09-23

    我们也是,在自行维持一套 token 鉴权机制的情况下这个 session_key 是没什么用。

    09-23
    赞同
    回复
问题标签