微信小程序之登陆态维护(十一)

【未经做者本人赞成,请勿以任何形式转载】小程序

》什么是登陆态?

所谓登陆态,就是程序在运行时,可以识别当前用户,可以证实本身的惟一性且合法。浏览器

咱们知道,WEB服务器经过浏览器携带的cookie获取session来判断是不是同一用户(或浏览器);Restful服务经过客户端传过来惟一ID,来识别调用用户。
缓存

》为何须要维护登陆态?

  • 有自身用户体系的应用
  • 用户敏感数据,只对用户可见
  • 涉及用户相关的业务,好比个人订单、个性化推荐等

》小程序登陆态维护实现流程

  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,若是存在正常执行;若是不存在小程序未登陆,从新从第一步流程走。

以上流程是官方推荐使用的流程,并非维护登陆态的惟一途径。服务器

另外,你也能够在小程序中使用wx.checkSession()检查登陆态是否过时。若是过时从新调用wx.login接口。
session_key在微信服务器有效期是30天,建议服务端缓存session_key不超过30天。微信

你也能够关注个人微信公众号『ITNotes』, 一块儿交流学习 。
cookie

相关文章
相关标签/搜索