▶️ 세션 기반 인증과 토큰 기반 인증의 차이에 대해 설명해 주세요.
세션 기반 인증(Session-Based Authentication)
- 세션 기반 인증은 서버 측에서 사용자 상태를 유지하고 관리하는 방식이다. 일반적으로 웹 애플리케이션에서 사용된다.
- 사용자가 로그인하면 서버는 사용자에 대한 세션을 생성하고 고유한 세션 ID를 할당한다. 이 세션 ID는 서버 측에 저장되거나 데이터베이스에 저장된다.
- 사용자가 애플리케이션에서 요청을 보낼 때마다 세션 ID를 함께 전송하며, 서버는 세션 ID를 사용하여 사용자를 식별하고 해당 세션에서 사용자 상태를 유지한다.
- 로그아웃하거나 세션이 만료되면 사용자는 다시 로그인해야 한다.
토큰 기반 인증(Token-Based Authentication)
- 토큰 기반 인증은 세션 기반 인증과 달리 상태를 서버에 저장하지 않고 클라이언트 측에서 상태를 관리한다.
- 사용자가 로그인하면 서버는 사용자에게 액세스 토큰과 종종 리프레시 토큰을 발급한다. 액세스 토큰은 사용자를 인증하는데 사용되며, 리프레시 토큰은 새로운 액세스 토큰을 발급받기 위해 사용된다.
- 클라이언트는 액세스 토큰을 각 요청의 헤더 또는 요청 매개변수로 전달하여 서버에 요청한다. 서버는 이 토큰을 검증하고 사용자를 인증한다.
- 토큰은 클라이언트 측에서 저장되므로 서버의 상태를 유지할 필요가 없다. 이로써 서버의 확장성이 향상된다.