jwt 设置不拦截
时间: 2023-07-01 11:16:57 浏览: 54
您可以在JWT验证中添加一个拦截器,来实现不拦截某些URL的需求。您可以在拦截器中将不需要验证JWT的URL进行判断,如果是不需要验证的URL,则直接放行,否则进行JWT验证。
以下是一个示例代码,您可以参考一下:
```java
public class JwtInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestUri = request.getRequestURI();
// 不拦截登录和注册请求
if (requestUri.contains("/login") || requestUri.contains("/register")) {
return true;
}
// 获取请求头中的token
String token = request.getHeader("Authorization");
if (StringUtils.isBlank(token)) {
throw new RuntimeException("未登录,请先登录!");
}
// 验证token
try {
JwtUtils.verifyToken(token);
} catch (Exception e) {
throw new RuntimeException("Token无效,请重新登录!");
}
return true;
}
}
```
在上面的示例代码中,我们判断了请求URL是否是登录或注册请求,如果是则直接放行,不进行JWT验证。如果不是登录或注册请求,则从请求头中获取token,并进行JWT验证,如果验证成功则放行,否则抛出异常。在使用该拦截器时,只需要将不需要验证的URL加入到判断条件中即可。