Payload 란
payload는 영어로 "짐", "적재물"이라는 뜻이지만, 토큰(JWT)에서는 실제 전달하려는 "데이터 내용"을 의미한다.
🔐 JWT 구조에서의 Payload
JWT는 3 부분으로 구성된 문자열이다.
xxxxx.yyyyy.zzzzz
문자열 설명
xxxxx | Header | 토큰 타입과 서명 알고리즘 |
yyyyy | Payload | 실제 정보(사용자 ID, 권한, 만료 시간 등) |
zzzzz | Signature | 토큰 위조 방지를 위한 서명 |
🔎 예시 (디코딩된 JWT Payload)
{
"sub": "user123",
"name": "홍길동",
"exp": 1715688840,
"role": "admin"
}
- sub: 사용자 식별 ID
- exp: 만료 시간 (UNIX timestamp)
- role: 사용자 권한
💡 특징
📖 읽을 수 있음 | payload는 Base64 인코딩이라 누구나 디코딩 가능 (보안 아님!) |
🔐 서명됨 | 서버에서 서명된 Signature가 있으므로 변조 감지 가능 |
🧠 주로 claims라고도 부름 | payload 안의 값들을 "claims"라고 부릅니다 (예: sub, exp, iat) |
📌 요약
Payload는 JWT에서 사용자의 정보나 토큰의 속성들을 담고 있는 중간 부분이다.
단, 보안 정보(password 등)는 절대 담으면 안 되고, 누구나 볼 수 있다고 가정해야 한다.
'인프라' 카테고리의 다른 글
DB 또는 API 개발에서 자주 사용되는 upsert 용어에 대하여 (0) | 2025.05.14 |
---|---|
Mac (맥북) 에서 Docker Desktop 악성코드 문제 해결 (3) | 2025.04.13 |