JWT 생성기
JWT(JSON Web Token)를 생성합니다. Header, Payload를 설정하고 비밀키로 서명합니다.
Header
Payload
직접 JSON payload를 입력하세요. 유효한 JSON 형식이어야 합니다.
비밀키는 안전하게 보관하세요. 절대 공개하지 마세요.
생성된 JWT
JWT 구조
- Header: 알고리즘과 토큰 타입 정보
- Payload: 클레임(사용자 데이터, 만료시간 등)
- Signature: Header + Payload + Secret으로 생성된 서명
JWT 생성기 안내
JWT 생성 알아보기
JWT(JSON Web Token) 생성은 사용자 인증이나 정보 전달을 위한 서명된 토큰을 만드는 과정입니다. Header(알고리즘, 타입), Payload(클레임 데이터), Secret Key(비밀키)를 조합해서 유효한 JWT를 만들 수 있습니다. 생성된 JWT는 API 인증, 세션 관리, SSO(Single Sign-On), 마이크로서비스 간 통신 등 다양한 곳에서 활용됩니다. 개발 과정에서 Postman이나 cURL로 인증이 필요한 API를 테스트할 때 유효한 JWT가 필요한데, 이 도구를 사용하면 서버를 실행하지 않고도 원하는 클레임과 만료 시간이 설정된 토큰을 즉시 만들 수 있습니다. 팀원에게 특정 토큰 구조를 설명하거나 JWT 기반 인증 시스템을 프로토타이핑할 때도 유용하게 활용할 수 있습니다.
여기서 만든 토큰은 테스트용입니다
먼저 분명히 해둡니다. 실제 서비스의 인증 토큰을 이 도구로 만들지 마세요. 서명에 쓰는 비밀 키를 브라우저에 입력하는 것 자체가 위험하고, 운영 시스템의 키는 서버 밖으로 나와서는 안 됩니다.
적절한 쓰임새는 개발 중 테스트입니다. API를 만들면서 특정 권한이 담긴 토큰이 필요할 때, 만료된 토큰으로 오류 처리를 확인할 때, 팀원에게 토큰 구조를 설명할 때 씁니다.
세 조각의 구조
JWT는 점으로 구분된 세 부분으로 이루어집니다. 헤더는 서명 알고리즘을, 페이로드는 담을 정보를, 서명은 앞의 두 조각이 위조되지 않았음을 보증합니다.
여기서 가장 많이 오해하는 것이 있습니다. 페이로드는 암호화되어 있지 않습니다. 단지 Base64로 인코딩되었을 뿐이라 토큰을 가진 사람은 누구나 내용을 읽을 수 있습니다. 서명이 보장하는 것은 내용이 바뀌지 않았다는 것이지 내용이 감춰졌다는 것이 아닙니다. 그러므로 비밀번호나 주민등록번호 같은 민감 정보를 페이로드에 넣으면 안 됩니다.
표준 클레임 알아두기
exp— 만료 시각. 유닉스 타임스탬프(초)입니다. 밀리초로 넣으면 아주 먼 미래가 되어 사실상 만료되지 않으니 주의하세요.iat— 발급 시각. 토큰이 언제 만들어졌는지 기록합니다.sub— 토큰의 주체. 보통 사용자 식별자를 넣습니다.iss— 발급자. 여러 시스템의 토큰을 구분할 때 씁니다.aud— 대상. 이 토큰을 받아야 할 서비스를 지정합니다.
만료 시간은 짧게 잡는 것이 원칙입니다. 한 번 발급된 JWT는 서버에서 강제로 무효화하기 어렵기 때문입니다. 접근 토큰은 몇 분에서 한 시간 정도로 두고, 갱신은 별도의 리프레시 토큰으로 처리하는 구조가 일반적입니다.
자주 묻는 질문
비밀 키는 얼마나 길어야 하나요?
HS256을 쓴다면 최소 32바이트 이상의 무작위 값을 권합니다. 짧거나 추측하기 쉬운 문자열을 쓰면 서명을 위조당할 수 있습니다. 비밀번호 생성기로 긴 무작위 문자열을 만들어 쓰세요.
입력한 키가 전송되나요?
전송되지 않습니다. 서명 계산이 브라우저 안에서 이루어집니다. 그럼에도 운영 키는 입력하지 마시길 권합니다.
만든 토큰을 검증해 볼 수 있나요?
JWT 디코더로 내용을 확인할 수 있습니다. 다만 서명 검증에는 키가 필요하므로 실제 검증은 서버에서 수행해야 합니다.
비슷한 도구 살펴보기
- JWT 디코더 - JWT 토큰 해석
- JSON ↔ CSV 변환 - JSON과 CSV 상호 변환
- JSON 포매터 - JSON 정렬 및 검증