JWT 디코더
토큰을 뜯어 헤더와 내용을 보여줘요. 만료 여부도 바로 확인할 수 있어요.
토큰은 브라우저 안에서만 풀어요. 서명은 확인하지 않고, 어디에도 전송되지 않아요.
토큰
서명은 확인하지 않아요. 적힌 내용을 풀어서 보여줄 뿐, 이 토큰이 진짜인지 검증한 게 아니에요.
JWT 디코더 소개
JWT 토큰을 점으로 나뉜 세 조각으로 풀어 헤더와 내용을 보여줘요. 알고리즘과 만료 여부를 바로 확인할 수 있고, 규격에 정해진 표준 항목은 무슨 뜻인지 이름을 붙여 설명해 줘요. 서명은 확인하지 않고 적힌 내용을 풀어서 보여줄 뿐이며, 토큰은 브라우저 밖으로 나가지 않아요.
JWT는 어떻게 생겼나요
JWT는 점 두 개로 나뉜 세 조각이에요. 앞에서부터 헤더, 내용, 서명이에요.
헤더에는 어떤 알고리즘으로 서명했는지가 들어 있어요. 내용에는 누가 발급했고 누구의 토큰이며 언제까지 유효한지 같은 정보가 담겨요.
앞의 두 조각은 Base64로 표현돼 있을 뿐 암호화된 게 아니에요. 누구나 풀어서 읽을 수 있다는 뜻이라, 토큰 안에 비밀번호나 주민등록번호 같은 민감한 값을 넣으면 안 돼요.
표준 항목이 뜻하는 것
exp는 만료 시각, iat는 발급 시각, nbf는 이 시각부터 유효하다는 뜻이에요. 세 가지 모두 1970년 1월 1일부터 흐른 초로 적혀요.
iss는 발급한 곳, sub는 토큰의 주인, aud는 받는 곳이에요. 인증 서버가 여러 서비스에 토큰을 발급할 때 이 값들로 구분해요.
jti는 토큰마다 붙는 고유 번호예요. 한 번 쓴 토큰을 다시 못 쓰게 막을 때 쓰여요.
서명을 확인하지 않는 이유
서명이 진짜인지 확인하려면 발급한 곳의 비밀 키나 공개 키가 필요해요. 비밀 키를 브라우저에 붙여 넣는 건 그 자체로 위험한 일이에요.
그래서 이 도구는 읽기만 해요. 만료됐는지, 어떤 값이 들어 있는지 확인하는 데는 충분하지만 "이 토큰이 진짜다"를 보증하지는 않아요.
검증은 서버에서 해야 해요. 클라이언트가 확인한 결과를 믿고 권한을 주는 구조는 만들면 안 돼요.
JWT 디코더 사용 방법
- 토큰을 붙여 넣어요. 예시 넣기로 형태를 먼저 볼 수도 있어요.
- 알고리즘과 만료 여부를 확인해요.
- 헤더와 내용에 담긴 값을 봐요.
- 표준 항목 설명으로 각 값이 무슨 뜻인지 확인해요.
자주 묻는 질문
- 서명도 검증하나요?
- 내용을 읽어 보여주기만 해요. 서명 검증에는 키가 필요한데 키를 브라우저에 넣는 건 안전하지 않아요.
- 토큰이 서버로 전송되나요?
- 아니요. 붙여 넣은 값은 브라우저 안에서만 해석돼요.
- exp와 iat는 무슨 뜻인가요?
- exp는 만료 시각, iat는 발급 시각이에요. 둘 다 초 단위로 적혀요.
- 세 조각이 아니라고 나와요.
- 토큰이 잘려서 복사됐을 수 있어요. 점으로 나뉜 세 조각이 모두 들어왔는지 확인해 주세요.
- 내용이 안 보이는 토큰도 있나요?
- 암호화된 토큰이라면 키 없이는 내용을 볼 수 없어요. 그런 경우 화면에 안내가 나와요.
- 토큰에 비밀 정보를 넣어도 되나요?
- 안 돼요. 앞의 두 조각은 누구나 풀어 읽을 수 있어서 민감한 값을 담으면 그대로 노출돼요.
알아 두면 좋은 점
- 서명은 확인하지 않아요. 이 토큰이 진짜인지 검증한 게 아니에요.
- 실제 검증은 반드시 서버에서 해야 해요.