我在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来解决的,在我的例子中,这个设置是正确的。我不知道该怎么办。
1条答案
按热度按时间ycggw6v21#
所以我找到了一个解决方案,我想把它贴在这里,以帮助其他有需要的开发人员。
问题不在我的后端,cookie设置正确,并且按照文档中的指定被删除。但事实是cookie是从一个不需要身份验证的端点设置的,我正试图从一个需要身份验证的端点删除它。
你可以推断,问题出在我的前端和cors请求上。我必须添加一个拦截器,为每个请求添加{withcredentials:true},这样就可以从服务器发送和接受cookies。
谢谢!