02 · ACCESS CONTROLP013 MIN
JWT 与 Refresh Token
分清短期访问令牌、长期刷新凭据和撤销难题。
MENTAL MODELTOKEN AUTHENTICATION
01登录
→02Access + Refresh
→03Access 过期
→04轮换 Refresh
→05新 Access
先把概念与边界说清楚
定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。
JWT
带签名的自包含令牌,服务可验证声明未被篡改,无需每次查询会话。
Access Token
短寿命令牌,用于访问 API,包含最少身份与授权上下文。
Refresh Token
长寿命、高价值凭据,用于换取新访问令牌,通常需要轮换和服务端记录。
移动端令牌被复制后如何止损
攻击者复制 Refresh Token,可持续换取新 Access Token。
- 01
刷新时轮换并作废旧 token。
- 02
检测旧 token 再次使用,撤销整个 token family。
- 03
记录设备、时间和异常位置供用户查看。
重放不再无限有效,并能把异常变成可检测事件。
马上动手
- 画出 access 过期后的刷新流程。
- 列出 JWT 中绝不能放的敏感数据。
常见坑
- Access Token 有效期一年
- Refresh Token 不轮换
- 把 JWT payload 当秘密
05 · KNOWLEDGE CHECKJWT 为什么不能仅靠“签名有效”判断当前权限?查看答案⌄
答案
签名只证明签发后未被篡改;账号可能已停用、角色可能已变更,长期令牌中的旧权限仍需过期或服务端检查。