1001Ferramentas
🔓Dev

JWT Decoder Verbose

Decodifica JWT (sem verificar assinatura) e explica cada claim (iss/sub/aud/exp/nbf/iat/jti).

Análise

Ler um JWT sem confiar nele

O login devolveu um token e a API está recusando: expirou? O aud está errado? Qual usuário ele representa? Um JWT é só base64url — dá para abrir sem chave nenhuma, e é isso que este decodificador faz. Cole o token e ele mostra o header, o payload e uma lista comentada dos claims, explicando o papel de cada um registrado (iss, sub, aud, exp, nbf, iat, jti) e convertendo os timestamps para data legível em ISO, enquanto você digita.

Dois pontos que valem muito em debugging. Primeiro: exp, nbf e iat são segundos UNIX, não milissegundos — comparar direto com Date.now() sem dividir por 1000 é um bug clássico que faz todo token parecer expirado há décadas. Segundo: decodificar não é validar. A assinatura (a terceira parte do token) não é verificada aqui; qualquer um consegue fabricar um payload com admin: true. Quem decide se o token merece confiança é o servidor, conferindo a assinatura com a chave.

A decodificação roda inteira no navegador — o token não é enviado a servidor nenhum. Ainda assim, trate JWT como senha: ele concede acesso enquanto for válido, então prefira colar tokens expirados ou de ambiente de teste quando estiver investigando. Use a ferramenta para conferir expiração, audience e claims customizados durante o desenvolvimento; para validar assinatura de verdade, use a biblioteca JWT da sua linguagem com a chave ou o JWKS do emissor.

Perguntas frequentes

Essa ferramenta valida a assinatura?
Não, ela só decodifica header e payload. Verificar a assinatura exige a chave secreta ou pública do emissor e deve acontecer no servidor.
Por que a expiração dá errado no meu código?
O exp é um timestamp em segundos; a ferramenta já converte para data ISO. Se o seu código compara com Date.now(), divida por 1000 antes.
É seguro colar um token de produção?
O token não sai do seu navegador, mas continua sendo uma credencial ativa. Quando puder, prefira um token expirado ou de ambiente de teste.

Ferramentas Relacionadas