반응형
서버가 사용자의 상태를 관리하고, 세션 아이디를 클라이언트에 전달합니다.
세션 아이디는 쿠키에 저장되어, 클라이언트가 요청을 보낼 때마다 서버에 포함됩니다.
서버는 세션 저장소를 사용하여 세션 아이디를 통해 사용자를 식별합니다.
사용 상황:
상태를 유지해야 하는 경우: 쇼핑카트와 같이 사용자 상태를 지속적으로 추적해야 하는 애플리케이션.
보안이 중요한 애플리케이션: 세션 정보가 서버에 저장되므로, 서버 측에서 직접 관리할 수 있어 보안 관리가 용이합니다.
브라우저 기반 애플리케이션: 대부분의 브라우저는 쿠키를 지원하여 세션 기반 인증을 쉽게 구현할 수 있습니다.
## 토큰 기반 인증 (Token-Based Authentication)
특징:
서버가 사용자를 인증하면 JSON 웹 토큰(JWT)을 생성하여 클라이언트에 전달합니다.
클라이언트는 토큰을 로컬 저장소나 세션 저장소에 저장합니다.
클라이언트는 이후 요청을 보낼 때마다 HTTP 헤더에 토큰을 포함시켜 서버에 전달합니다.
서버는 토큰을 검증하여 사용자를 식별합니다.
사용 상황:
상태를 서버에 저장할 필요가 없는 경우: 상태 저장을 최소화하고 서버 자원을 절약할 수 있습니다.
모바일 애플리케이션: 브라우저가 아닌 다양한 클라이언트에서도 쉽게 사용할 수 있습니다.
확장성 및 마이크로서비스: 중앙 인증 서버에서 발행한 토큰을 다양한 서비스에서 사용할 수 있어 확장성과 유연성이 높습니다.
## 종합
이 두 방법 중 어떤 것을 사용할지는 애플리케이션의 특성에 따라 결정됩니다. 예를 들어, 전통적인 웹 애플리케이션은 세션 기반 인증이 적합하고, 모바일 앱이나 SPA는 토큰 기반 인증이 더 적합할 수 있습니다.
반응형