删除 Cookie Spring 引导
Delete Cookie Spring Boot
我在登录时在 cookie 中传递一些信息,我需要在注销时删除这些信息。为了传递和删除 cookie,我使用了 HttpServletResponse。该cookie在客户端可见,但未删除。
添加 cookie:
Cookie cookie = new Cookie(name, value);
cookie.setHttpOnly(true);
cookie.setSecure(false);
cookie.setMaxAge(age);
cookie.setPath("/");
cookie.setDomain("localhost");
response.addCookie(cookie);
删除:
Cookie cookie = new Cookie(name, null);
cookie.setHttpOnly(true);
cookie.setSecure(false);
cookie.setMaxAge(0);
cookie.setPath("/");
cookie.setDomain("localhost");
response.addCookie(cookie);
传递的名称相同,我对两者都使用常量变量,所以这不是问题所在。我读了很多问题,但所有问题都通过将 setMaxAge 设置为 0 来解决,在我的情况下设置正确。我不知道该怎么办。
所以我找到了一个解决方案,我想post在这里帮助其他有需要的开发者。
问题不在我的后端,cookie 设置正确并且也按照文档中的说明删除了。但事实是 cookie 是从不需要身份验证的端点设置的,我试图从需要身份验证的端点删除它。
正如您可以推断的那样,问题出在我的前端和 cors 请求上。我必须在每个请求中添加一个拦截器 {withCredentials: true},它可以从服务器发送和接受 cookie。
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
req = req.clone({
withCredentials: true
});
return next.handle(req);
}
谢谢!
我在登录时在 cookie 中传递一些信息,我需要在注销时删除这些信息。为了传递和删除 cookie,我使用了 HttpServletResponse。该cookie在客户端可见,但未删除。
添加 cookie:
Cookie cookie = new Cookie(name, value);
cookie.setHttpOnly(true);
cookie.setSecure(false);
cookie.setMaxAge(age);
cookie.setPath("/");
cookie.setDomain("localhost");
response.addCookie(cookie);
删除:
Cookie cookie = new Cookie(name, null);
cookie.setHttpOnly(true);
cookie.setSecure(false);
cookie.setMaxAge(0);
cookie.setPath("/");
cookie.setDomain("localhost");
response.addCookie(cookie);
传递的名称相同,我对两者都使用常量变量,所以这不是问题所在。我读了很多问题,但所有问题都通过将 setMaxAge 设置为 0 来解决,在我的情况下设置正确。我不知道该怎么办。
所以我找到了一个解决方案,我想post在这里帮助其他有需要的开发者。
问题不在我的后端,cookie 设置正确并且也按照文档中的说明删除了。但事实是 cookie 是从不需要身份验证的端点设置的,我试图从需要身份验证的端点删除它。
正如您可以推断的那样,问题出在我的前端和 cors 请求上。我必须在每个请求中添加一个拦截器 {withCredentials: true},它可以从服务器发送和接受 cookie。
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
req = req.clone({
withCredentials: true
});
return next.handle(req);
}
谢谢!