Ir para o conteúdo
OpsKit

Decodificador JWT

Cole um JWT para ver seu cabeçalho e suas claims. Os horários de expiração e emissão são convertidos em datas legíveis e as claims registradas vêm explicadas. O token permanece no seu navegador.

Tudo acontece no seu navegador. Esta página é um arquivo estático. O que você digita fica na aba, nunca é enviado a um servidor e some quando você fecha — então colar um token ou uma configuração real é seguro.

Quando você precisa disto

  • Uma requisição está retornando 401 e você precisa saber se o token expirou ou se a audiência está errada.
  • Verificar quais scopes ou papéis um token de acesso realmente carrega antes de culpar a API.
  • Confirmar o emissor e o id da chave enquanto depura uma integração OIDC.

Exemplos resolvidos

Um token de acesso padrão

Entrada
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NSIsIm5hbWUiOiJKYW5lIiwiaWF0IjoxNzAwMDAwMDAwLCJleHAiOjE3MDAwMDM2MDB9.signature
Resultado
sub: 12345 · exp: 2023-11-14 23:13 UTC

Cabeçalho, payload e assinatura, separados por pontos.

Lendo a expiração

Entrada
"exp": 1700003600
Resultado
2023-11-14 23:13 UTC

exp são segundos desde a época Unix, não milissegundos. Um valor em milissegundos cai no ano 55000 e é um bug comum.

O cabeçalho perigoso

Entrada
{"alg":"none"}
Resultado
Token sem assinatura

Bibliotecas que honram alg: none aceitam tokens forjados. Sempre fixe o algoritmo esperado no servidor.

Onde as pessoas erram

Tratar o payload como privado

Um JWT é assinado, não criptografado. Quem tem o token consegue ler todas as claims, exatamente como esta página faz. Nunca coloque nada confidencial nele.

Confiar no selo de validade de um decodificador

Decodificar não prova nada sobre autenticidade. Um token pode ser perfeitamente legível e completamente forjado; só a verificação da assinatura no seu servidor resolve isso.

Confundir exp com um problema de desvio de relógio

Se um token expira "na hora", compare a claim iat com o relógio do seu servidor. Alguns minutos de diferença entre máquinas já rejeitam tokens válidos.

Perguntas frequentes

Meu token é enviado para algum lugar?

Não. A página é estática e a decodificação acontece no seu navegador com um parse de Base64 e JSON. Nada é registrado ou transmitido, o que você pode confirmar no painel de rede.

Por que esta ferramenta não me diz se a assinatura é válida?

A verificação exige o segredo de assinatura ou a chave pública do emissor. Colar um segredo de assinatura de produção em uma página web seria um hábito muito pior do que qualquer comodidade que traga.

Qual a diferença entre exp e nbf?

exp é quando o token deixa de ser aceito; nbf é quando ele passa a ser. Um token emitido com antecedência pode ter um nbf no futuro e será rejeitado até lá.

Ferramentas relacionadas