문제 발생
⌨️ 코드
public HttpServletResponse deleteTokenCookie(HttpServletResponse response, String token) {
ResponseCookie cookie = ResponseCookie.from(COOKIE_NAME, token)
.maxAge(0)
.build();
response.addHeader("Set-Cookie", cookie.toString());
return response;
}
- maxAge를 0으로 설정한 뒤 응답 헤더에 반환
문제 원인
path 옵션 (path=/mypath)
- 설정한 경로나 그 경로의 하위 경로에 있는 페이지만 쿠키에 접근할 수 있다.
- 절대 경로이어야 하고, (미 지정시) 기본값은 현재 경로이다.
- 사용 예시) path=/admin
- 설정한 쿠키는 /admin과 그 하위 경로(/admin/something) 볼 수 있다.
- /home 이나 /adminpage에선 볼 수 없다.
- 특별한 경우가 아니라면, path 옵션을 path=/같이 루트로 설정해 웹사이트의 모든 페이지에서 쿠키에 접근하는 것이 좋다.
문제 해결
public HttpServletResponse deleteTokenCookie(HttpServletResponse response, String token) {
ResponseCookie cookie = ResponseCookie.from(COOKIE_NAME, null)
.maxAge(0)
.path("/")
.build();
response.addHeader("Set-Cookie", cookie.toString());
return response;
}
- path 옵션 추가해주었더니 쿠키가 잘 삭제되었다!
참고문헌
https://ko.javascript.info/cookie