完成jwt拦截器和从token中获取当前登录的用户id

目前除登录以外的所有操作都会经过拦截器,可以在WebConfig中设置拦截器忽略的接口
获取用户id不需要手动输入了,直接通过UserContext获取当前登录的用户id
为动态删除,动态修改等我负责的功能添加身份验证,用户id不匹配则会跳出异常
增加token过期验证
This commit is contained in:
KilLze
2025-12-28 02:17:09 +08:00
parent b5a15a3f01
commit bd12c599b0

View File

@@ -40,9 +40,18 @@ public class TokenInterceptor implements HandlerInterceptor {
try { try {
log.info("jwt校验: {}", token); log.info("jwt校验: {}", token);
// 验证 token 是否有效(包括是否过期)
if (!JwtUtil.validateToken(token)) {
log.error("Token 无效或已过期");
response.setStatus(401);
return false;
}
// 解析 token // 解析 token
String userId = JwtUtil.getSubjectFromToken(token); String userId = JwtUtil.getSubjectFromToken(token);
log.info("用户: {}", userId); log.info("用户: {}", userId);
// 保存 userId 到 ThreadLocal // 保存 userId 到 ThreadLocal
UserContext.setUserId(Long.valueOf(userId)); UserContext.setUserId(Long.valueOf(userId));
return true; return true;