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