-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
logout 과 관련한 질문이 있습니다.
22.12.31 11:04 작성 조회수 292
1
@PostMapping("/logout")
public String logout(HttpServletResponse response) {
expireCookie(response, "memberId");
return "redirect:/";
}
private void expireCookie(HttpServletResponse response, String cookieName) {
Cookie cookie = new Cookie(cookieName, null);
cookie.setMaxAge(0);
response.addCookie(cookie);
}
logout 메서드를 공부하면서 의문이 생겼습니다.
코드를 보니까 memberId 이름을 가진 쿠키를 하나 생성해서 setMaxAge = 0으로 설정한 후에 addCookie를 하는데 이렇게 되면 memberId 이름을 가진 쿠키가 2개가 되는 것 아닌가요? (기존에 로그인 할 때 memberId 생성 + 로그아웃할 때 memberId 생성)
이 memberId가 대체된다고 생각했을 때에도 여러 회원이 로그인을 하게 되면 memberId = x, memberId = y, ... 이렇게 다양하게 존재할 것 같은데 저렇게 같은 이름으로 memberId의 setMaxAge = 0 처리를 해버리면 모든 회원의 memberId의 setMaxage가 0이 되지 않을까 싶어서 의문이네요ㅠㅠ
답변을 작성해보세요.
5
![David님의 프로필](https://cdn.inflearn.com/public/main/profile/default_profile.png?w=48)
David
2022.12.31
안녕하세요. aj4941님, 공식 서포터즈 David입니다.
A 회원이 로그인을 했을 때 쿠키(memberId, A001)이 저장되다면
B 회원이 로그인을 하게 되면 쿠키(memberId, A001)을 쿠키(memberId, B001)이 덮어쓰게 됩니다.
따라서, expire시 마지막에 덮어쓰여진 쿠키(memberId, B001)가 제거됩니다.
이 부분은 직접 테스트 해보시면 이해에 도움이 될 것 같습니다.
감사합니다.
![aj4941님의 프로필](https://cdn.inflearn.com/public/main/profile/default_profile.png?w=48)
aj4941
질문자2022.12.31
답변 감사합니다!
테스트로는 말씀하신 것처럼 나오는데 일반적인 서비스를 제공할 때 A 회원, B 회원이 동시 접속 중이라면 (memberId, A001) 이랑 (memberId, B001)이 공존해야 하는 것 아닌가요??
답변 1