JWT 与 Session 是两种主流认证方案,前者无状态但难以吊销,后者易管理但有存储成本。
一、核心对比
| 维度 | JWT | Session |
|---|---|---|
| 状态存储 | 客户端 | 服务端 |
| 水平扩展 | 天然支持 | 需共享存储 |
| 吊销能力 | 弱 | 强 |
| 令牌体积 | 较大 | 仅 Session ID |
| 跨域支持 | 好 | 需配置 |
二、混合方案
采用短期 Access Token(JWT,15 分钟)+ 长期 Refresh Token(存储于服务端或 Redis)的组合:
json
{
"access_token": "eyJhbGciOi...",
"expires_in": 900,
"refresh_token": "opaque-random-string"
}Access Token 无状态校验保证性能,Refresh Token 可吊销保证安全。用户登出时只需在服务端删除 Refresh Token,Access Token 在短时间后自然过期。