김 컴퓨터


JWT (JSON Web Token) 이해하기

JWT(JSON Web Token)는 당사자 간에 정보를 JSON 객체로 안전하게 전송하기 위한 개방형 표준(RFC 7519)입니다. 주로 웹 서비스에서 인증(Authentication)인가(Authorization)를 처리할 때 사용됩니다.


1. 로그인 프로세스에서의 JWT 작동 방식

전통적인 세션 방식과 달리, JWT는 서버가 상태를 저장하지 않는 Stateless 방식입니다.

  1. 로그인 요청: 사용자가 아이디와 비밀번호를 입력하여 서버에 로그인을 시도합니다.
  2. 토큰 생성: 서버는 사용자 정보가 맞다면, 비밀키를 사용하여 암호화된 JWT를 생성합니다.
  3. 토큰 전달: 서버는 생성된 토큰을 클라이언트(브라우저)에게 보냅니다.
  4. 토큰 저장: 클라이언트는 토큰을 LocalStorage나 Cookie에 저장합니다.
  5. 이후 요청: 클라이언트는 이후 서버에 요청을 보낼 때마다 HTTP 헤더(Authorization)에 토큰을 담아 보냅니다.
  6. 토큰 검증: 서버는 받은 토큰이 유효한지(변조되지 않았는지) 확인하고 사용자를 인가합니다.

2. JWT의 구조

JWT는 점(.)으로 구분된 세 부분으로 구성됩니다.


3. JWT의 장점