token cookie实现拦截器
时间: 2023-07-06 22:38:45 浏览: 139
可以使用拦截器来实现 token 或 cookie 的验证和拦截,以下是一个示例代码:
```java
public class AuthInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 获取请求头中的 token 或 cookie
String token = request.getHeader("token");
if (StringUtils.isBlank(token)) {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("token".equals(cookie.getName())) {
token = cookie.getValue();
break;
}
}
}
}
// 验证 token 或 cookie
if (StringUtils.isBlank(token) || !verifyToken(token)) {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized");
return false;
}
return true;
}
// 验证 token 的方法
private boolean verifyToken(String token) {
// TODO: 根据实际业务需求验证 token 的有效性
return true;
}
}
```
在上述代码中,我们通过实现 `HandlerInterceptor` 接口来定义一个拦截器,然后在 `preHandle` 方法中获取请求头中的 token 或 cookie,并进行验证。如果 token 或 cookie 的验证不通过,则返回 401 错误码。需要注意的是,在实际项目中,我们需要根据业务需求来实现 `verifyToken` 方法来验证 token 的有效性。
阅读全文