목차
JWT란?
- 데이터를 안전하고 간결하게 전송하기 위해 고안된 인터넷 표준 인증 방식
- 토큰 기반 인증에서 범용적으로 사용됨
JWT 구조

다음과 같이 세 부분으로 나뉘고, 각각은 .으로 구분됨
- Header (헤더) : 어떤 알고리즘으로 서명했는지, 어떤 타입의 토큰인지 정의
- Payload (페이로드) : 사용자 정보와 클레임(Claim) 데이터가 담김
- Signature (서명) : 헤더와 페이로드가 변조되지 않았음을 검증
JWT 동작 흐름

Access Token / Refresh Token
| 구분 | Access Token | Refresh Token |
| 목적 | API 요청 시 인증/인가 | Access Token 재발급 |
| 유효 기간 | 짧음 (분~시간 단위) | 김 (일~주 단위) |
| 보관 위치 | 보통 메모리/스토리지 | 안전하게 보관 필요 |
- Access 토큰 → 실제 API 요청에 사용
- Refresh 토큰 → Access 토큰 재발급 용도
고려사항
- 민감한 정보 포함 금지
- JWT는 Base64URL로 인코딩되어 있을 뿐 암호화 X
- 따라서 토큰 안에 민감한 정보를 절대로 넣지 말아야 함
- 토큰 만료 시간 설정
- HTTPS 사용
- JWT는 네트워크를 통해 전달되므로 반드시 HTTPS를 통해 암호화된 채널에서만 전송
- 저장 위치 주의
- 로컬 스토리지 대신 HTTPOnly 쿠키 또는 세션 스토리지 사용 권장
- 로컬 스토리지는 XSS 공격에 취약
- 토큰 무효화 전략
- 기본적으로 JWT는 발급 후 만료 전까지 무효화 불가
- 이를 보완하기 위해 서버 측에서 블랙리스트를 관리하거나 Redis 같은 인메모리 DB 활용 가능
728x90
'Computer Science' 카테고리의 다른 글
| [Algorithm] 이진 탐색(Binary Search) (0) | 2025.10.14 |
|---|---|
| Saga 패턴 (0) | 2025.10.11 |
| 세션 기반 인증 / 토큰 기반 인증 (0) | 2025.09.24 |
| [Algorithm] 시간 초과(TLE) 해결 방법 (0) | 2025.08.10 |
| [Algorithm] 자료구조(Data Struct)와 알고리즘(Algorithm) (0) | 2025.08.09 |