반응형
**JWT(Json Web Token)**는 요즘 웹 서비스에서 빠질 수 없는 인증 방식이다.
로그인, API 보안, 마이크로서비스 통신 등 다양한 곳에서 활용된다.
✅ JWT 토큰 정의
JWT는 사용자의 신원 정보를 JSON 형식으로 담고, 이를 디지털 서명한 토큰 기반 인증 수단이다.
HTTP 헤더에 포함되어 서버에 전달되며, 서버는 이 토큰을 검증하여 사용자를 식별한다.
🔧 JWT 토큰 구조
JWT는 세 부분으로 구성되며, .으로 구분된다.
<Header>.<Payload>.<Signature>
구성 요소설명
Header | 알고리즘과 타입 정보 (예: HS256) |
Payload | 사용자 정보(Claims), 예: ID, 이메일, 권한 등 |
Signature | 위조 방지용 서명, 비밀키 기반 생성 |
🔁 JWT 토큰 작동 원리
- 사용자가 로그인하면 서버가 JWT를 발급한다.
- 클라이언트는 이 토큰을 저장 (로컬스토리지 또는 쿠키).
- 이후 API 요청 시, JWT를 HTTP 헤더에 포함한다.
- 서버는 토큰의 유효성을 검사하고 요청을 처리한다.
⭐ JWT 토큰의 장점
- ✅ 무상태 인증 (Stateless): 세션 저장소가 필요 없음
- ✅ 빠른 처리 속도: 서명만 확인하면 인증 완료
- ✅ 확장성: 마이크로서비스, 모바일, 클라이언트-서버 구조에 적합
⚠️ JWT 토큰의 단점과 주의사항
- ❗ 탈취 시 보안 위협: HTTPS 필수
- ❗ 블랙리스트 관리 어려움: 로그아웃 기능 구현 복잡
- ❗ 토큰 크기 큼: 네트워크 전송 비용 존재
🧪 JWT 토큰 예시
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJ1c2VyX2lkIjoxMjMsImFkbWluIjp0cnVlfQ.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
이 토큰을 디코딩하면 다음과 같은 JSON을 확인할 수 있다:
{
"user_id": 123,
"admin": true
}
✅ 결론
JWT 토큰은 세션 없는 인증 방식으로, 웹/모바일 환경에서 인증 처리에 많이 사용된다.
하지만 보안에 민감한 서비스에서는 토큰 만료 및 저장 방식, HTTPS 사용 여부 등을 반드시 신경 써야 한다.
반응형