深色模式
前端token无感刷新
需求
前端登录以后,只要在一段时间内(比如10天)操作过,就不需要重新登录。对于活跃用户,一直不必重新登录。
分析
只要1个token,不要2个。
后端写2个接口:
- 用户登录
- 刷新token
逻辑
前端需要实现一个串行拦截器,对于所有需要token的请求,使用此拦截器拦截。在拦截器中,判断本地token的到期时间,决定是否刷新token。
具体策略:
后端给的token,有效期30天。 前端判断token剩余时间小于10天,即刷新。
效果:
前端只要在过去10天内打开过,就不会需要重新登录。
漏洞:
- 前端时间可能改了系统时间,与后端差别很大。此问题,可以忽略,也可以在前端打开时,校验一次时间,以判断前端时间是否可靠。
- 原生token未到期,即被弃用,此问题忽略。
- 可以任意刷新token,此问题,可以采取措施应对。