收藏
回答

wx.checkSession

问题模块
API和组件

一、通过 wx.login 获取的 code; 通过服务端换取的 session_key 是有过期时间的,而 checkSession 就是用来检测 session_key 是否过期,如果过期了,就需要重新 login 换取新的 session_key


疑点:

    0. checkSession 检测 session_key,客户端需要把session_key缓存在本地?否则如何判断?

    1. session_key的有效期是多久?


二、

  1. 通过wx.login获取登录态。

  2. 通过登录返回的code发送给服务器,服务器用code换取session_key和openid后。

  3. 获取session_key后一般使用缓存框架保存登录态,服务端随机生成一串唯一字符串3rdSessionId为key,session_key为value组成键值对并存到缓存当中,缓存时间视情况自行决定。

  4. 将3rdSessionId返回给客户端

  5. 客户端将3rdSessionId缓存到localStorage中,后续接口从缓存中读取3rdSessionId,传递给服务器;服务器根据3rdSessionId来判断用户身份。

  6. 如果服务器根据3rdSessionId在缓存中查找是否存在session_key,如果存在正常执行;如果不存在小程序未登录,重新从第一步流程走。


疑点:

    0. 3rdSessionId 在后台设置有效期, 客户端每次请求传3rdSessionId 给后台, 如果值为false, 那就说明有效期失效, 重新登录;这样会有什么问题吗?如果可以跑通,checkSession 是不是多余了?



最后一次编辑于  2017-12-06
回答关注问题邀请回答
收藏

4 个回答

  • 邢灿举
    邢灿举
    2018-02-12

    怎么没有回官方哥哥回答???

    2018-02-12
    赞同
    回复
  • Jerry
    Jerry
    2018-01-22

    同问 ~

    2018-01-22
    赞同
    回复
  • 宝藏
    宝藏
    2018-01-17

    同样的问题! 不知道有什么更好的解决办法没有

    2018-01-17
    赞同
    回复
  • 呼吸🎯
    呼吸🎯
    2017-12-28

    同问,我都没有用到这个api

    2017-12-28
    赞同
    回复