인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

rere님의 프로필 이미지
rere

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

로그인 처리하기 - 쿠키 사용

강의 관련 질문이 있습니다.

작성

·

1.1K

1

항상 좋은 강의 감사드립니다.
1.
Member loginMember = memberRepository.findById(memberId);
if (loginMember == null) {
return "home";
}

이부분 로직에서 궁금한것이 쿠키가 이미 발급되었다는것은 로그인 입력정보와 일치하는 회원이 회원저장소에 존재한다는것을 전제로 하는데 왜 loginMember과 null인지 한번더 검증하는지 이해가 가질 않습니다.

2. cookie만료와 관련해서 addcookie를 여러번 하면 결국 오버랩되어서 마지막으로 set-cookie로 보낸 쿠키만이 저장되는 것인가요??

3. loginhome에서 로그아웃을 왜 post메서드로 보내는지 이해가 가질 않습니다. 단지 maxage가 0인 쿠키만 보내고 홈화면으로 리다이렉트로 get하면 되는것 아닌가요???

답변 2

5

2를 테스트해봤는데요!
1) Cookie의 name 속성이 같을 경우

response - header 에는 추가한 순서대로 쿠키의 값들이 전송됩니다. 다만 application 탭에서 확인했을 땐 가장 마지막에 추가한 쿠키만 남아있었습니다!
=> 마지막 쿠키만 저장된다

2) 쿠키의 name 속성이 다를 경우(완전히 다른 쿠키)

response - header에 다른 쿠키값이 저장되고 apllication 에도 다른 쿠키 값이 기록된다.

5

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. rere님^^

1. 쿠키가 존재하더라도 해당 시점에 회원이 탈퇴하거나, 여러가지 이유로 회원 데이터가 제거될 수 있습니다.

(운영 정책상 회원이 차단되거나 등등)

2. cookie만료와 관련해서 addcookie를 여러번 하면 결국 오버랩되어서 마지막으로 set-cookie로 보낸 쿠키만이 저장되는 것인가요??

제가 답을 바로 드릴 수도 있지만, 그러면 더 많은 것을 얻어가실 수 없으니^^! 이 부분은 한번 테스트해보시고, 다른 분들을 위해 결과를 공유해주시면 좋겠습니다.

3. loginhome에서 로그아웃을 왜 post메서드로 보내는지 이해가 가질 않습니다. 단지 maxage가 0인 쿠키만 보내고 홈화면으로 리다이렉트로 get하면 되는것 아닌가요???

로그아웃은 클라이언트에서 서버로 요청하는 것입니다. 따라서 GET, POST 등에서 선택해야 합니다. 내부적으로 상태가 변하므로 POST를 선택했습니다.

감사합니다.

rere님의 프로필 이미지
rere

작성한 질문수

질문하기