• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

로그인 로그아웃에서 쿠키, 세션

22.06.08 13:46 작성 조회수 473

7

항상 좋은 수업을 해주시는 영한님과 좋은 답변을 달아주시는 서포터님들에게 감사의 말씀을 전합니다.

쿠키, 세션에 관해 궁금증이 생겨 다른 분들의 질문을 읽어보고 검색도 해봤는데, 제가 이해한게 맞는지와 궁금한 점이 있어서 질문을 남기게 되었습니다!!

로그인 로직에 대해 제가 제대로 이해한게 맞나요??

1. 로그인

1) (최초 로그인) 브라우저에서 id, password를 담아 서버에 로그인을 요청한다.

2) 서버는 id, password를 검증하여 해당 사용자에 대한 sessionId를 생성하고 서버에 저장하고 Set-Cookie:sessionId(쿠키) 로 로그인 성공 응답을 보낸다.

3) 브라우저는 브라우저의 쿠키 저장소에 sessionId(쿠키)를 저장한다.

4) 이후 매핑된 쿠키가 있는 URL로 서버에 요청을 보낼 때, 브라우저가 자동으로 쿠키 저장소에서 꺼낸 쿠키를 Cookie:sessionId(쿠키)를 함께 보낸다.

5) 서버는 sessionId의 유효성 검사를 통해 클라이언트를 식별하여 로그인 상태를 유지한다.

2. 로그아웃

사용자가 로그아웃을 하면, 브라우저의 쿠키와 서버의 세션이 모두 삭제된다고 알고 있습니다. 

https://www.inflearn.com/questions/495180

F12 > Application > Cookies를 살펴보니 위 글의 답변처럼 브라우저는 각 사이트에서 생성한 쿠키를 URL과 매핑하여 관리하고 있다는 것을 알게되었습니다. (실제로 google 로그인을 하면 Cookie에 SSID가 생성되었다가 로그아웃하면 자동으로 사라지는 것을 확인할 수 있었습니다.)

1) 사용자1 구글 로그인->로그아웃->사용자2 구글 로그인 을 했다고 가정합니다. 어떠한 URL(google.com)에 매핑된 쿠키 정보에 다른 유저의 SSID가 동시에 존재할 수 는 없는게 맞나요?? "위 상황에서는 같은 URL로 로그인 요청이 두번 일어났지만 사용자1은 로그아웃을 하면서 쿠키 저장소에 사용자 1의 SSID는 삭제되고 사용자 2의 SSID가 새로 저장되었기 때문에 현재 브라우저의 쿠키 저장소에 google.com과 매핑된 쿠키는 사용자2의 ssid이다" 이 해석이 맞나요??

2) 그렇다면, 사용자가 로그아웃 요청을 서버에 보내게 되면 서버단에서 세션을 삭제하는 코드를 작성하고 프론트단에서 브라우저의 쿠키를 삭제하는 코드를 작성하는 건가요???

 

 

답변 1

답변을 작성해보세요.

1

codesweaver님의 프로필

codesweaver

2022.06.08

안녕하세요, ahah525 님! 공식 서포터즈 codesweaver 입니다.

네 이해하고 계신 내용이 맞습니다.

로그아웃 프로세스에는 말씀하신 것처럼 서버의 세션을 삭제 하는 코드와

그리고 사용자의 로그인 값을 무효화 하는 코드(값을 빈값으로 초기화 혹은 쿠키 유효기간을 0 등으로 만료 시키는 방법)를 작성합니다.

감사합니다.

ahah525님의 프로필

ahah525

질문자

2022.06.08

빠른 답변 감사합니다ㅎㅎ