所谓登录态,就是程序在运行时,能够识别当前用户,能够证明自己的唯一性且合法。
WEB服务器通过浏览器携带的cookie获取session来判断是否是同一用户(或浏览器);Restful服务通过客户端传过来唯一ID,来识别调用用户(传统登录有web服务器提供Session维护, 后端在返回结果给前端web项目时,带上cookie,且以cookie值为key存储用户信息到session中,前端web项目在再以后端返回的结果中,得到相应cookie的值,再一次以同样的方式将cookie值返回给前端浏览器客户端,这样,后面每次浏览器客户端请求时都会带上cookie。)。
微信小程序和以前的web项目不同,他是前后端分离的应用,微信小程序中没有cooike,那么接下来我们来看下小程序如何登录,以及如何维护微信小程序的登录态(Session)。
小程序登录态维护实现流程
- 通过wx.login获取登录态。
- 通过登录返回的code发送给服务器,服务器用code换取session_key和openid后。
- 获取session_key后一般使用缓存框架保存登录态,服务端随机生成一串唯一字符串3rdSessionId为key,session_key为value组成键值对并存到缓存当中,缓存时间视情况自行决定。
- 将3rdSessionId返回给客户端
- 客户端将3rdSessionId缓存到localStorage中,后续接口从缓存中读取3rdSessionId,传递给服务器;服务器根据3rdSessionId来判断用户身份。
- 如果服务器根据3rdSessionId在缓存中查找是否存在session_keyÿ