令牌服务,支持普通功能和会话功能。
payload新增rat(Refreshed At)用于记录上次刷新时间。
- 一级过期时间(15分钟)是jwt的标准超时,会自动刷新 => 避免频繁刷新影响性能;
- 二级过期时间(1小时)时,停止自动刷新 => 会话超时;
- 三级过期时间(1周)用于强制过期 => 避免永久有效。
- 用户登录后生成token写入会话cookie;
- 用户访问系统发送cookie,后端检查token:
- 一级过期时间(15分钟)未到,则放行。
- 一级过期时间已到,检查二级过期时间:
- 签发时间超过了三级过期时间,返回token已过期
- 上次刷新时间超过了二级过期时间,返回token已过期
- 上次刷新时间未超过二级过期时间,更新刷新时间为当前时刻,返回新token,写入cookie
设置黑名单可以强制令牌失效。