SpringBootjwt + 拦截器实现token验证
import io.jsonwebtoken.Claims;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class JwtInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
// 从http头信息中取出token
String token = request.getHeader("Authorization");
// 如果请求路径是登录或者注册,则放行
if (token == null || (request.getRequestURI().contains("/login") || request.getRequestURI().contains("/register"))) {
return true;
}
// 解析token
Claims claims = JwtUtils.parseJwt(token);
if (claims == null) {
// 如果token无效,返回false,拦截请求
return false;
}
// 如果token有效,继续执行后续的Interceptor和Controller
return true;
}
}
这段代码实现了一个简单的JWT拦截器,用于验证每个HTTP请求中的token是否有效。如果请求中包含token且有效,则继续执行后续的拦截器和控制器;如果无效或者请求不包含token,则拦截请求。这种方式可以有效地保护你的API不被未授权的访问。
评论已关闭