---
title: JWT与刷新令牌安全策略
keywords:
- JWT
- Refresh Token
- RS256
- Token Rotation
- 授权与会话
- httpOnly Cookie
- SameSite
- 受众与发行者
- 过期与撤销
- 黑名单
description: 设计短期访问令牌与可撤销刷新令牌的安全策略,包含签名算法、存储方式、旋转与撤销机制及验证清单。
date: 2025-11-25
categories:
- 文章资讯
- 技术教程
---
概述
JWT 适合携带声明用于认证与授权,但必须配合刷新令牌与撤销机制保证安全与可控。本文提供参数建议、旋转与存储策略,并给出验证清单。
签名与声明(已验证)
- 算法:优先
RS256/ES256,私钥仅服务端持有;拒绝none算法。 - 必备声明:
iss(发行者)、aud(受众)、exp(过期)、iat(签发时间),以及主体sub与权限范围scope。 - 最小化负载:仅包含必要声明,避免敏感信息写入令牌。
访问令牌与刷新令牌
- 访问令牌(Access Token):短期有效(如 5–15 分钟),低泄露风险窗口。
- 刷新令牌(Refresh Token):长期有效(如 7–30 天),仅用于换取新访问令牌,不直接授权资源。
- 旋转(Rotation):每次刷新生成新刷新令牌并撤销旧令牌;绑定设备/客户端标识。
存储与传输
- Cookie:
httpOnly+Secure+SameSite=Lax/Strict,防止 XSS 窃取与 CSRF。 - 前端不使用
localStorage存储敏感令牌;采用授权码流程(PKCE)。 - 令牌不出现在 URL 与日志;通过 Authorization 头传输访问令牌。
撤销与黑名单
- 维护刷新令牌黑名单(或状态存储)并记录最近一次使用时间与指纹;一旦异常使用立即作废。
- 设备注销与风险事件(密码修改、权限变更)触发全部令牌失效。
验证清单
- 校验签名与算法固定;
- 校验
iss/aud/exp/nbf; - 校验会话状态与黑名单;
- 限定来源与设备指纹(可选);
示例(伪配置)
accessTokenTTL=10m, refreshTokenTTL=14d
algo=RS256, keyRotation=90d
cookie: httpOnly+Secure+SameSite=Lax
refresh: rotate=true, revokeOnSuspicious=true
常见误区
- 访问令牌长期有效导致泄露风险扩大。
- 刷新令牌不旋转或无撤销通道,无法阻断风险。
- 将令牌存入
localStorage被 XSS 轻易窃取。
结语
以短期访问令牌、可旋转刷新令牌与严格校验为核心,辅以 Cookie 安全与黑名单机制,可显著提升会话安全与可管控性。

发表评论 取消回复