前端如何与springboot拦截器进行token校验
时间: 2024-01-30 15:03:26 浏览: 89
前端与Spring Boot拦截器进行Token校验的基本思路是:前端将用户登录时获取到的Token放在请求的Header中,Spring Boot拦截器通过拦截请求获取Header中的Token,然后根据Token进行校验。
下面是具体的步骤:
1. 前端在用户登录成功后,将Token保存在浏览器的本地存储(localStorage或sessionStorage)中,并在每次请求时将Token放在请求的Header中。例如:
```
axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;
```
2. Spring Boot拦截器通过实现HandlerInterceptor接口来拦截请求,并在拦截器中获取Header中的Token。例如:
```
public class TokenInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token = request.getHeader("Authorization");
// 根据Token进行校验
if (token == null || !token.startsWith("Bearer ")) {
response.setStatus(HttpStatus.UNAUTHORIZED.value());
return false;
}
// ...
return true;
}
// ...
}
```
3. 在Spring Boot的配置类中配置拦截器,使其生效。例如:
```
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Autowired
private TokenInterceptor tokenInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(tokenInterceptor)
.addPathPatterns("/**")
.excludePathPatterns("/login");
}
// ...
}
```
在上面的代码中,我们将TokenInterceptor添加到拦截器链中,并设置了拦截所有请求(除了/login)。
这样,当前端发送请求时,拦截器会拦截请求并获取Header中的Token,然后进行校验,如果校验不通过则返回401状态码,否则继续执行请求。
阅读全文