一、通过 wx.login 获取的 code; 通过服务端换取的 session_key 是有过期时间的,而 checkSession 就是用来检测 session_key 是否过期,如果过期了,就需要重新 login 换取新的 session_key
疑点:
0. checkSession 检测 session_key,客户端需要把session_key缓存在本地?否则如何判断?
1. session_key的有效期是多久?
二、
通过wx.login获取登录态。
通过登录返回的code发送给服务器,服务器用code换取session_key和openid后。
获取session_key后一般使用缓存框架保存登录态,服务端随机生成一串唯一字符串3rdSessionId为key,session_key为value组成键值对并存到缓存当中,缓存时间视情况自行决定。
将3rdSessionId返回给客户端
客户端将3rdSessionId缓存到localStorage中,后续接口从缓存中读取3rdSessionId,传递给服务器;服务器根据3rdSessionId来判断用户身份。
如果服务器根据3rdSessionId在缓存中查找是否存在session_key,如果存在正常执行;如果不存在小程序未登录,重新从第一步流程走。
疑点:
0. 3rdSessionId 在后台设置有效期, 客户端每次请求传3rdSessionId 给后台, 如果值为false, 那就说明有效期失效, 重新登录;这样会有什么问题吗?如果可以跑通,checkSession 是不是多余了?
怎么没有回官方哥哥回答???
同问 ~
同样的问题! 不知道有什么更好的解决办法没有
同问,我都没有用到这个api