Article
JWT 鉴权落地:过期、刷新与权限边界
JWT 鉴权落地:过期、刷新与权限边界
个人博客后台流量不大,但仍建议把鉴权做成「可替换、可审计」的一层。
最小可行方案
- 登录校验用户名密码(bcrypt)
- 签发短期 JWT(例如 24–72 小时)
- 管理接口统一中间件校验签名与 「role=admin」
容易踩的坑
- 密钥写死在仓库:生产必须用环境变量,并具备轮换能力
- 只校验「有 Token」:还要校验 「exp」、签名算法(拒绝 「none」)与角色
- 把 JWT 当会话万能钥匙:注销无法真正失效时,应缩短 TTL,或引入黑名单 / 版本号
- 前后端域名不一致:Cookie 方案要管 SameSite;Bearer 方案注意 XSS 窃取
与 CORS 的关系
若 API 与页面同域反代,可大幅简化 CORS。多域名(「www」 与裸域)并存时,把允许的 Origin 显式列出。
小结
鉴权的目标是「默认拒绝,显式放行」。博客后台尤其如此:公开读、管理写。