[Spring] 쿠키 삭제 안된다?

Jiruen·2025년 1월 13일
0

문제 발생

⌨️ 코드

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

0개의 댓글