在spring Boot 项目中,当用户注销时,我们使用以下代码块使cookie无效:
//name = "Token"
//value = "expired"
//age = 0
private void setExpiredCookie(HttpServletResponse response, String name, String value, int age) {
Cookie cookie = new Cookie(name, value);
cookie.setSecure(true); //Send cookie to the server only over an encrypted HTTPS connection
cookie.setHttpOnly(true); //Preventing cross-site scripting attacks
cookie.setPath("/"); //Global cookie accessible every where
cookie.setMaxAge(age); //Deleting a cookie. I Passed the same other cookie properties when you used to set it
response.addCookie(cookie);
}
然而,在注销后,我用一个应用程序测试了我的网站,以捕获请求并通过中继器重新发送它,并使用确切的值,如令牌和有效负载。
我重新发送了一个请求,例如,更改电子邮件地址,这个请求,尽管注销,有效期为15分钟(原始cookie的生命周期)。
我错过了什么?因为我正确地删除和保护cookie。
1条答案
按热度按时间t40tm48m1#
您正在创建新cookie。您应该使会话ID为的cookie无效,该ID是在您进行身份验证时提供给您的。只需使用以下命令: