사용자 인증 환경에서 쿠키(cookies)란 ?

  • 사용자 인증에서 쿠키는 웹 브라우저에 저장되는 작은 데이터 조각입니다.
  • 서버에서 웹 브라우저로 전송되어 클라이언트의 PC에 저장됩니다.
  • 클라이언트가 웹 서핑이나 API 를 요청할 때 사용자 식별 및 상태 추적을 위해 사용됩니다.

 

사용자 인증 환경에서 쿠키의 생명주기는 어떻게 될까요?

  • 사용자 로그인 : 아이디와 비밀번호 입력 후 서버 요청(HTTP REQUEST)
  • 서버 인증 : 아이디와 비밀번호를 확인하여 유효한 사용자인지 확인 후 사용자를 식별하는 고유한 세션 식별자를 생성
  • 쿠키 생성 : 생성된 세션 식별자를 쿠키에 저장하고, 이 쿠키를 에 담아 클라이언트에 응답(HTTP RESPONSE)
  • 사용자 요청 시 쿠키 전송 : 클라이언트가 서비스에 새로운 요청을 할 때마다 쿠키를 서버에 함께 요청
    • 서버에서 세션 식별자를 통해 유효성을 검증 합니다.
  • 세션 유지 및 로그아웃 : 클라이언트가 활동하는 동안 세션을 유지하고, 로그아웃을 하거나 세션이 만료되었을 경우에는 쿠키를 무효화하고 다시 인증하는 로직을 수행

 

사용자 인증 환경에서 쿠키를 아직 사용하나요?

  • MSA가 보편화된 시점에서 서버는 stateless(상태 없음, 무상태)를 지향합니다. 아니 필수라고 할 수 있습니다. 이럴경우 하나의 서버에서 사용자 인증 세션을 관리하기 어렵습니다. 그렇기 때문에 쿠키-세션 방식은 현재 많이 사용되고 있지 않습니다.
  • 하지만, JWT 토큰을 쿠키에 저장하는 방법은 사용되고 있는데 이 부분은 다음 포스트에서 공유 드리겠습니다.

+ Recent posts