230704 cookie expire

보트·2023년 7월 4일
0

Spring

목록 보기
12/27

: 서버에서 쿠키를 삭제할 수 없음
: 클라이언트에 똑같은 이름의 쿠키를 또 만들 수 없음
-> 삭제하려는 쿠키와 같은 이름을 가진 쿠키를 생성하고 setMaxage() 메서드를 이용해 유효기간을 0으로 지정해 클라이언트로 반환

시도

// 로그아웃
    @PostMapping("/signout")
    public ApiResponseDto signout(HttpServletRequest request, HttpServletResponse response) {
        jwtUtil.expireCookie(request, response);
        return new ApiResponseDto("로그아웃 완료", HttpStatus.OK.value());
    }
public void expireCookie(HttpServletRequest request, HttpServletResponse response) {
        Cookie[] cookies = request.getCookies();
        if(cookies != null) {
            log.info(cookies.toString());
            for (Cookie cookie : cookies) {
                if (cookie.getName().equals(AUTHORIZATION_HEADER)) {
                    log.info(cookie.getValue());
                    Cookie newCookie = new Cookie(AUTHORIZATION_HEADER, null);
                    newCookie.setMaxAge(0);
                    response.addCookie(newCookie);
                }
            }
        }
    }

(참고 : https://enai.tistory.com/28)

@CookieValue를 이용해 본 코드

   @PostMapping("/signout")
    public ApiResponseDto signout(@CookieValue(value = AUTHORIZATION_HEADER) String cookie, HttpServletResponse response) {
        jwtUtil.expireCookie(cookie, response);
        return new ApiResponseDto("로그아웃 완료", HttpStatus.OK.value());
    }
   public void expireCookie(String cookie, HttpServletResponse response) {

        if (!cookie.isEmpty()) {
            log.info(cookie);
            Cookie newCookie = new Cookie(AUTHORIZATION_HEADER, null);
            newCookie.setMaxAge(0);
            response.addCookie(newCookie);
        }

    }

로그인 할 때는 postman에 자동으로 cookie추가가 됐는데 로그아웃을 할 때는 자동으로 변경되지 않았다.
질문드리고 업데이트 할 예정

profile
일주일에 한 번

0개의 댓글