JWT 개념

Goguma·2025년 7월 7일

BE 개념_스터디

목록 보기
5/5

Json Web Token은 JSON 객체를 안전하게 전송하기 위한 토큰 형식입니다.

사용자에 대한 정보를 디지털 서명된 토큰으로 만들어 클라이언트와 서버가 주고받는 방식


JWT의 구조

JWT는 세 부분으로 구성됩니다. 각각은 '.'으로 구분됩니다.

xxxxx.yyyyy.zzzzz

구성 요소설명
Header토큰의 타입 (JWT) 및 해싱 알고리즘 (HS256 등)
Payload실제 전달할 정보 (클레임이라고 부름)
Signature위 두 개를 암호화한 서명 (위조 방지용)

1. Header

{
"alg": "HS256",
"typ": "JWT"
}

2. payload

{
"sub": "1234567890",
"name": "goguma",
"iat": 1516239022
}

3. signature

HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)


특징과 장점

장점설명
✅ 무상태(stateless)서버에서 세션을 저장하지 않아도 됨
✅ 확장성인증 서버 분산에 유리
✅ Self-contained필요한 정보를 모두 토큰에 포함

주의할 점

JWT는 변조 방지는 가능하지만 암호화되지 않음 → 민감한 정보 금지

토큰 탈취 시, 만료 시간까지는 재사용 가능 → 반드시 HTTPS 사용

서버에서 토큰 폐기 불가 → 보통 Redis 등을 함께 사용해 블랙리스트 관리


JWT 사용 예시 (로그인 인증)

1.사용자가 로그인

2.서버가 JWT를 생성해 클라이언트에 전달

3.클라이언트는 JWT를 로컬에 저장 (예: localStorage)

4.이후 요청 시 Authorization: Bearer 헤더로 전달

5.서버는 토큰 검증 후 인증 처리

profile
달달고구마

0개의 댓글