[Weekly Paper 15] - 세션 기반 인증과 토큰 기반 인증

YUYONI·2024년 3월 3일
0

코드잇 스프린트 3기

목록 보기
27/31

모두 인증(Authentication)을 처리하는 방식 중 두 가지 주요한 접근 방식인 세션 기반 인증과 토큰 기반 인증은 다음과 같은 특징을 가짐

📌 세션 기반 인증(Session-based Authentication)

동작 방식

  • 사용자가 인증되면 서버는 사용자의 세션을 생성하고 이 세션을 유지함
  • 세션은 일반적으로 서버 측에서 메모리나 데이터베이스에 저장됨
  • 사용자가 로그인하면 서버는 사용자에게 세션 식별자(일반적으로 세션 ID라고 함)를 부여하고 이를 쿠키에 저장하여 클라이언트에게 반환

특징

  • 세션 기반 인증은 서버 측에서 사용자의 상태를 관리하기 때문에 상대적으로 보안이 높음
  • 사용자가 로그인할 때마다 서버에 의해 세션 데이터베이스가 갱신되고, 로그아웃하거나 일정 시간이 경과하면 세션은 만료됨
  • 보안을 위해 HTTPS와 함께 사용되어야 함

장점

  • 서버 측에서 세션을 관리하기 때문에 클라이언트 측에서는 세션 정보를 직접 다룰 필요가 없어서 비교적 간단함
  • 서버에서 세션을 무효화시킬 수 있어 로그아웃 기능을 구현하기 용이함



📌 토큰 기반 인증(Token-based Authentication)

동작 방식

  • 사용자가 로그인하면 서버는 클라이언트에게 토큰을 발급하고
  • 이 토큰은 클라이언트 측에 저장되어야 함
    (보통은 로컬 스토리지나 세션 스토리지, 쿠키 등을 이용해 저장)
  • 클라이언트가 서버에 요청을 보낼 때마다, 이 토큰이 함께 전송되어 인증을 수행하게 됨

특징

  • 토큰 기반 인증은 클라이언트 측에서 상태를 관리하기 때문에 서버는 세션 데이터를 저장할 필요가 없음
  • 토큰은 보통 JSON Web Token(JWT) 형식으로 사용되고, 토큰에는 사용자 정보와 추가적인 데이터가 포함될 수 있음
  • 보안을 위해 토큰은 안전한 방식(ex: HTTPS)으로 전송되어야 함

장점

  • 서버의 부담을 줄일 수 있고, 서버가 확장성 있게 구성될 수 있음
  • 분산 환경에서 특히 유용하며, 다중 플랫폼 간의 인증을 지원하기도 함



결론

세션 기반 인증은 보안성이 높고, 서버가 세션을 관리하기 때문에 클라이언트 측에서 상태를 다룰 필요가 없는 반면, 토큰 기반 인증은 서버의 부담을 줄이고 클라이언트 측에서 상태를 관리하기 때문에 분산 환경에서 유용하며, 다중 플랫폼 간의 인증을 지원하는 데 적합하다!

profile
기본기와 원리, 개념 철처하게 다지기!

0개의 댓글