Todas as ferramentas

Decodificador JWT

Decodifique e inspecione JSON Web Tokens (cabeçalho, payload, expiração)

Como funciona

Decodificador JWTDecodifique e inspecione JSON Web Tokens (cabeçalho, payload, expiração). Todo o processamento acontece no seu navegador — sem upload, sem cadastro, sem e-mail. Grátis para sempre.

Última atualização:

Sobre Decodificador JWT

Um JSON Web Token parece uma string opaca de pontos e base64, mas por dentro é um header e payload em JSON perfeitamente legíveis — mais uma assinatura que prova que o emissor o criou. Este decodificador JWT separa os três segmentos, faz base64url-decode, formata o JSON com indentação e converte os claims de tempo padrão (iat, nbf, exp) para o seu fuso horário local, para você ver imediatamente se um token está expirado, quando foi emitido e para quem.

Decodificar é exatamente o que devs de backend fazem dezenas de vezes por semana: voltou um 401 de uma API, você copia o bearer token e quer ver o "sub", "aud", "scope" e "exp" sem ter que abrir Node ou Python. Fazer isso em uma ferramenta online qualquer é arriscado porque tokens frequentemente carregam endereços de e-mail, ids internos de usuário, claims de role e identificadores de tenant — exatamente os dados que você não quer que um terceiro registre em log.

Tudo neste decodificador acontece client-side no seu navegador. O token nunca sai do seu dispositivo, não é enviado a nenhum servidor, não é armazenado no localStorage, e some quando você fecha a aba. A assinatura intencionalmente não é verificada — isso requer o segredo ou a chave pública do emissor, que nunca pedimos. Use seu backend ou uma biblioteca JWT quando precisar de validação criptográfica.

Como usar Decodificador JWT

  1. Cole o JWT (a longa string "xxx.yyy.zzz") na caixa de entrada.
  2. Leia o Cabeçalho decodificado para ver o algoritmo (alg) e o key id (kid) que o emissor usou.
  3. Inspecione o Payload em busca de claims como sub, aud, iss, scope e quaisquer campos customizados que seu serviço injetou.
  4. Confira a seção de timestamps — "Expira", "Emitido em" e "Não antes de" são convertidos para seu fuso horário local.
  5. Olhe o badge "Válido" / "Expirado" para uma checagem rápida, depois copie claims individuais conforme necessário.
  6. Lembre-se: a assinatura é mostrada mas não verificada — para validação criptográfica, entregue o token ao seu backend.

Casos de uso comuns

  • Depurar respostas "401 Unauthorized" verificando se o bearer token realmente expirou.
  • Inspecionar um access token OAuth2 ou OIDC para confirmar que scopes, audience e issuer batem com o que a API espera.
  • Ler claims customizados (tenant id, role, feature flags) adicionados pelo seu provedor de auth durante o login.
  • Confirmar problemas de clock-skew quando o "nbf" (not before) cai alguns segundos no futuro em relação ao servidor.
  • Compartilhar uma visão redatada de um token com um colega sem colar em Slack ou em um site público.

Dicas e erros comuns

  • Se a decodificação falhar, confira que você copiou o token completo incluindo os dois pontos — muitas UIs cortam no primeiro espaço ou escondem a assinatura final.
  • Um payload decodificado não prova nada sobre autenticidade. Qualquer um pode forjar um JWT com aparência válida; só a verificação de assinatura com a chave do emissor diz que é genuíno.
  • Trate JWTs como senhas ao compartilhar prints — mesmo tokens "expirados" podem vazar ids de usuário, endereços de e-mail e nomes de scope internos.
  • Se "alg" for "none" no header, o token não tem assinatura nenhuma e seu serviço deve rejeitá-lo. Este decodificador ainda mostra o payload para você confirmar o bug.

Perguntas frequentes

O token é enviado aos seus servidores?

Não. A decodificação acontece inteiramente no seu navegador com JavaScript — o token nunca sai do dispositivo.

Isto verifica a assinatura?

Não. Esta ferramenta apenas decodifica header e payload. A verificação de assinatura requer a chave secreta/pública, que não pedimos — use seu backend ou uma biblioteca JWT.

Por que as datas aparecem no meu fuso local?

Claims JWT padrão como exp, iat e nbf são timestamps Unix (UTC). Renderizamos no fuso local do navegador para legibilidade.

Esta ferramenta vai enviar meu token para algum servidor?

Não. A decodificação é JavaScript puro rodando na sua aba do navegador. Não há fetch, nem telemetria, nem logging. Abra o DevTools → Network e você vai ver zero requisições quando colar um token.

Decodifica também tokens JWE criptografados?

Não. JWE (JWTs criptografados) precisa da chave privada do destinatário para ser legível. Esta ferramenta lida apenas com JWS (JWTs assinados), que é o que a grande maioria dos fluxos OAuth2 e OIDC realmente emite.

Por que o payload mostra timestamps numéricos e uma data legível?

Os claims padrão (exp, iat, nbf) são armazenados como segundos Unix em UTC. Mostramos o número bruto mais uma data convertida para o fuso local para você identificar problemas de expiração sem fazer conta de cabeça.

Ferramentas relacionadas