1.为什么需要维护登录状态?
1.有自身用户体系的应用,存在唯一标识(例:微信-openId)
2.用户友好性,免登录状态
2.微信小程序登录态维护流程
1.微信小程序wx.login请求后返回code.
2.微信小程序将code发送到开发服务器,通过code请求微信服务器换取session_key和openid.(请求地址如下)
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code3.获取session_key后一般使用缓存框架保存登录态,服务端随机生成一串唯一字符串3rdSessionId为key,session_key为value组 成键值对并存到缓存当中,缓存时间视情况自行决定。
4.将3rdSessionId返回给客户端
5.客户端将3rdSessionId缓存到localStorage中,后续接口从缓存中读取3rdSessionId,传递给服务器;服务器根据3rdSessionId来 判断用户身份。
6.如果服务器根据3rdSessionId在缓存中查找是否存在session_key,如果存在正常执行;如果不存在小程序未登录,重新从第一步 流程走。
登录流程时序

另外,可以在小程序中使用wx.checkSession()检查登录态是否过期,如果过期重新调用wx.login接口。
session_key在微信服务器有效期是30天,建议服务端缓存session_key不超过30天。













