JWT用户登录方案-前后端交互说明

1 前端请求登录接口时后端返回token给前端,前端存储到客户端

2 前端每次请求接口时把token放到header中传给后端,后端校验token判断是否登录

3 当token即将过期时请求接口(比如还剩10分钟即将过期时),此时后端会检验到token即将过期,会在header中加入token-will-expire=yes键值对

4 前端当发现接口返回响应header中有token-will-expire=yes时,调用token刷新的接口获取新的token并替换旧的token到客户端

5 当再次请求接口时将使用新的token放到header中传给后端

6 当前端长时间没有请求接口时,比如已经超过了token的过期时间,下次请求时后端会检验到token已过期,返回用户未登录提示

7当用户退出登录时,前端请求退出接口,后端把该token标记为已失效并缓存到token过期后删除即可,这样当客户端下次使用已退出登录的token时,后端能通过失效标记判断token是否有效

8 前端token的存储有效期须与后端保持一致

说明:

1,2 解决登录问题

3,4 解决续签问题(比如用户一直在操作时,突然token到期问题,且能解决前端判断过期而导致的并发请求失败问题)

7 解决无法废弃问题(比如用户退出问题)(注:7是后端处理,前端可忽略)