完成jwt拦截器和从token中获取当前登录的用户id
目前除登录以外的所有操作都会经过拦截器,可以在WebConfig中设置拦截器忽略的接口 获取用户id不需要手动输入了,直接通过UserContext获取当前登录的用户id 为动态删除,动态修改等我负责的功能添加身份验证,用户id不匹配则会跳出异常 增加token过期验证
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user