Files
javascript-examples/doc/15_인증.md
2025-01-26 02:15:33 +09:00

1.4 KiB

인증(Authentication)

인증은 사용자가 누구인지 확인하는 과정을 의미합니다. 일반적으로 로그인 과정을 통해 사용자 신원을 확인하며, 이후 세션을 통해 인증 상태를 유지합니다.

세션 기반 인증

  • 서버에 세션 정보를 저장하고, 클라이언트는 세션 ID를 쿠키로 저장.
  • 서버에서 세션 ID를 확인하여 사용자를 인증.

세션 기반 인증 흐름

  1. 클라이언트가 로그인 요청을 보냄.
  2. 서버는 사용자를 인증한 후 세션을 생성하고, 세션 ID를 쿠키로 설정하여 클라이언트에 반환.
  3. 클라이언트는 이후 요청마다 해당 세션 ID를 쿠키에 포함하여 보냄.
  4. 서버는 세션 ID를 기반으로 사용자를 인증.

토큰 기반 인증

  • 사용자를 인증하면 **토큰(JWT)**을 생성하여 클라이언트에 전달.
  • 클라이언트는 요청 시 토큰을 포함(Authorization 헤더)하여 인증.

토큰 기반 인증 흐름 (JWT)

  1. 클라이언트가 로그인 요청을 보냄.
  2. 서버는 사용자를 인증한 후 **JSON Web Token(JWT)**을 생성하여 클라이언트에 반환.
  3. 클라이언트는 토큰을 로컬 저장소 또는 쿠키에 저장.
  4. 이후 요청 시 토큰을 Authorization 헤더에 포함하여 서버에 전송.

OAuth

  • 서드파티 인증을 위한 표준 프로토콜.
  • Google, Facebook, GitHub 등을 통한 로그인 방식.