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