Decodificador de JWT

Decodifique qualquer JSON Web Token no navegador: veja o header e o payload, exp, iat e nbf como datas reais no seu fuso horário, e se o token já expirou.

Decodificado no seu navegador. Seu token nunca é enviado ao nosso servidor.

Resumo

Cabeçalho (header)


                    

Payload (claims)


                    

Token e assinatura

Leia qualquer JWT sem enviá-lo para lugar nenhum

Cole um JSON Web Token e o decodificador separa as três partes: o cabeçalho (qual algoritmo assinou), o payload (os claims: quem é o usuário, o que ele pode acessar e quando o token expira) e a assinatura. O JSON aparece formatado para você ler de relance.

Os claims de tempo viram datas reais. exp, iat e nbf aparecem no seu fuso horário, em UTC e como “em 20 minutos” ou “há 3 dias”, e o status mostra na hora se o token ainda é válido, se expirou ou se ainda não vale.

Tokens costumam dar acesso a contas reais, por isso tudo é decodificado no seu navegador. O token nunca é enviado ao nosso servidor, registrado ou guardado, o que é mais seguro do que colá-lo num chatbot ou num site que o manda para um servidor.

Como decodificar um JWT

  1. Copie o token do seu app, de um cabeçalho Authorization, de um cookie ou das ferramentas de desenvolvedor do navegador.
  2. Cole na caixa. O prefixo Bearer, aspas, espaços e quebras de linha são removidos automaticamente.
  3. Leia o resumo: status, algoritmo, emissor, assunto, público e os horários exatos de emissão e expiração.
  4. Use os botões de copiar para levar o JSON formatado do cabeçalho ou do payload para um relatório de bug ou suas anotações.

O que significam os claims mais comuns

  • exp (expiration time): depois desse momento o token deve ser rejeitado.
  • iat (issued at): quando o token foi criado.
  • nbf (not before): o token não deve ser aceito antes desse momento.
  • iss (issuer): quem criou o token, muitas vezes a URL do seu servidor de login.
  • sub (subject): a quem o token se refere, geralmente um ID de usuário.
  • aud (audience): o app ou a API a que o token se destina.
  • alg e kid (no cabeçalho): o algoritmo de assinatura, como HS256 ou RS256, e o ID da chave que assinou o token.

As datas de um JWT são valores NumericDate: o número de segundos desde 1º de janeiro de 1970 UTC. O decodificador converte para você, então não é preciso um conversor de timestamp separado.

Dicas para depuração

  • Se uma API responde 401 logo depois do login, confira primeiro exp e nbf. Um relógio de servidor adiantado ou atrasado alguns minutos é uma causa comum; a maioria das bibliotecas aceita uma pequena tolerância.
  • Uma data dezenas de milhares de anos no futuro indica que o valor foi gravado em milissegundos em vez de segundos. O decodificador avisa quando isso acontece.
  • Compare aud e iss com o que sua API espera. Um token emitido para outro app ou ambiente (homologação em vez de produção) é causa frequente de erros de “token inválido”.
  • Um cabeçalho com alg igual a none significa que o token não é assinado. Nunca aceite esses tokens em produção.

Limites e o que é bom saber

  • Decodificar não é verificar. Qualquer pessoa pode criar um token com quaisquer claims; só a verificação da assinatura com a chave certa, no seu servidor, prova que ele é autêntico. Esta ferramenta não verifica assinaturas.
  • O payload de um JWT comum é só codificado, não criptografado. Quem tiver o token pode lê-lo, então nunca coloque senhas ou segredos nos claims.
  • Tokens criptografados (JWE, de cinco partes) não podem ser lidos sem a chave, por isso só o cabeçalho é mostrado.
  • Os números aparecem exatamente como estão no token, então IDs numéricos longos nunca são arredondados.

Perguntas frequentes

É seguro colar um token real aqui?

Sim. A decodificação roda em JavaScript no seu navegador e o token nunca é enviado ao nosso servidor. Mesmo assim, trate tokens ativos como senhas: não compartilhe em prints ou chats e deixe-os expirar.

Esta ferramenta diz se um token é válido?

Ela mostra se o token expirou ou se ainda não é válido, com base nas datas. Não consegue dizer se a assinatura é autêntica, porque isso exige a chave secreta ou pública que só o seu servidor deve ter.

Por que meu token aparece como expirado se acabei de recebê-lo?

Confira o relógio do servidor que o emitiu e veja se exp está em segundos, não em milissegundos. Se iat também está horas no passado, o relógio do servidor provavelmente está errado.

Qual a diferença entre um decodificador JWT e um Base64?

Um JWT são três partes codificadas em Base64URL unidas por pontos. Um decodificador Base64 lê uma parte por vez, mas o decodificador JWT separa o token para você, entende o alfabeto seguro para URL e a falta de preenchimento, e transforma as datas em horários legíveis.

Funciona offline?

Sim. Depois que a página carrega, você pode se desconectar da internet e continuar decodificando tokens.

Ferramentas relacionadas

  • Decodificador Base64: Decodifique strings Base64 em texto legível na hora. Confira cabeçalhos de autenticação, tokens, payloads de API e e-mails. Decodificador Base64 grátis.
  • Validador e formatador de JSON: Valide e formate JSON on-line. Encontre erros de sintaxe e transforme JSON minificado em código legível e indentado. Grátis e sem cadastro.
  • Decodificador de URL: Decodifique URLs e query strings com codificação percentual e transforme em texto legível. Converta %20, %26 e %C3%A9 na hora. Grátis.
  • Codificador Base64: Codifique qualquer texto ou string em Base64 na hora. Útil para data URIs, cabeçalhos HTTP Basic, e-mail e APIs. Codificador Base64 grátis.

Compartilhar

Ferramentas semelhantes

Decodificador Base64

Decodifique strings Base64 em texto legível na hora. Confira cabeçalhos de autenticação, tokens, payloads de API e e-mails. Decodificador Base64 grátis.

Validador e formatador de JSON

Valide e formate JSON on-line. Encontre erros de sintaxe e transforme JSON minificado em código legível e indentado. Grátis e sem cadastro.

Decodificador de URL

Decodifique URLs e query strings com codificação percentual e transforme em texto legível. Converta %20, %26 e %C3%A9 na hora. Grátis.

Ferramentas grátis populares