Começar Enviar um site

Decodificador de JWT

Developer Tools

Cole um JSON Web Token para ler o cabeçalho, a carga e o horário exato de expiração, tudo local sem enviar o token a nenhum servidor.

Cole o token completo de três partes, incluindo os dois pontos.

Resultado

Status —
  • Expira —
  • Algoritmo —
  • Tipo de token —
  • Payload —
  • Cabeçalho —

Altere qualquer valor e o resultado é atualizado na hora.

Fórmula e regras

  • Um JWT contém três partes Base64URL separadas por pontos: header, payload e assinatura.
  • O Base64URL troca + por - e / por _, e remove o preenchimento =, para que os tokens sobrevivam a URLs e cabeçalhos HTTP.
  • A claim exp é um timestamp Unix em segundos, por isso um token expira quando o tempo atual ultrapassa esse número.
  • A decodificação apenas lê as duas partes JSON; nunca verifica a assinatura, que deve ser validada pelo servidor.

Exemplos resolvidos

Decodificar um token de demonstração

Entrada O token preenchido, exp = 1700003600.

Resultado Algoritmo HS256, tipo JWT, quatro claims, expiração em 2023-11-14 23:13:20 UTC.

Um token sem exp

Entrada Um payload de {"sub":"42","scope":"read"}.

Resultado O status indica que o token não tem claim de expiração, por isso nunca expira sozinho.

Um token truncado

Entrada abc.def

Resultado Um erro explica que um JWT deve ter três partes antes que qualquer coisa possa ser decodificada.

Perguntas frequentes

A decodificação prova que o token é genuíno?

Não. Qualquer pessoa pode criar um token com o payload que quiser. Apenas um servidor que verifica a assinatura com a chave secreta ou pública pode dizer se um token foi emitido por você.

É seguro colar um token de produção?

A decodificação acontece no seu navegador, então o token não é enviado. Mesmo assim, trate-o como uma senha: prefira um token de teste e renove qualquer coisa que você colar em uma tela compartilhada.

Por que um token novo já está expirado?

Ou o relógio do emissor está atrasado em relação ao seu, ou um valor exp em milissegundos foi passado onde segundos são esperados. Esta ferramenta lê exp como segundos, conforme a especificação JWT.

E se o header ou o payload não for JSON?

O decodificador reporta um erro. A especificação JWT exige que ambas as partes sejam objetos JSON codificados em base64url, portanto uma parte que não seja JSON geralmente significa que a string não é um JWT.

Aviso legal: Os resultados seguem a fórmula apresentada nesta página e são apenas de referência. As quantidades reais variam com os materiais, a técnica e as condições, por isso deixa uma margem antes de encomendar.