QF清风笔记 · 技术
技术避坑 · 安全

JWT 登录鉴权常见坑:过期、刷新、退出和前端存储

JWT 用起来很简单,但真正上线后会遇到退出不失效、密码修改后旧 Token 还能用、过期体验差、前端存储泄露等问题。

JWTSpring Security后台登录
JWT

JWT 天然无状态,也带来失效难题

JWT 的优点是后端不用每次查会话,缺点是签发后在过期前天然有效。用户退出登录、管理员禁用账号、修改密码后,如果系统不做额外校验,旧 Token 可能继续访问接口。这对后台管理系统尤其危险。

常见做法是缩短 Token 有效期,并在后端维护版本号、密码更新时间或黑名单。每次校验 Token 时,除了验签和过期时间,还要确认账号状态和 Token 版本是否仍有效。

前后端协作点

Authorization

接口统一使用 `Authorization: Bearer token`,避免多套传参方式。

统一拦截

前端遇到 401 要清本地状态并跳登录页,避免页面半登录。

密码修改

修改成功后清 Token,要求重新登录,降低旧凭证风险。

不要把 JWT 当成万能安全方案

JWT 只是凭证格式,不负责权限设计、接口校验、CSRF、防重放和敏感操作确认。后台系统即使只有一个管理员,也要做好密码 BCrypt、登录失败限制、关键操作日志和 HTTPS。Token 泄露后能做什么,取决于后端接口权限边界。

实践建议:JWT 适合做管理端无状态鉴权,但要配合账号状态、版本控制、过期策略和前端统一拦截,才算完整。