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

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

View File

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