前端检测和处理过期 Token 是保障用户体验和应用安全的关键环节。通常有被动处理(响应拦截)和主动处理(请求前检查)两种主要策略,实际项目中通常结合使用。 以下是详细的解决方案和代码示例(以 Axios 为例): --- 1. 核心概念:双 Token 机制 在讨论处理之前,通常预设后端采用了 双 Token 机制: Access Token: 短期有效(如 15 分钟),用于请求资源。 Refresh Token: 长期有效(如 7 天),用于换取新的 Access Token。 --- 2. 策略一:被动处理(响应拦截器) 这是最常用的方式。前端正常发送请求,当后端返回 时,前端拦截该错误,尝试刷新 Token 并重发原请求。 难点处理:并发请求 当页面同时发出 5 个请求且 Token 过期时,会瞬间收到 5 个 401。如果处理不当,会触发 5 次刷新 Token 接口,导致资源浪费或逻辑错误。必须引入“请求锁”和“重试队列”。 代码实现(Axios 拦截器): --- 3. 策略二:主动处理(请求前检查) 在发送请求之前,先解码 Token(JWT),判断 (过期时间...