Decodificador de JWT

Cole um JWT para ver o cabeçalho e o payload em JSON legível, com as datas dos claims exp, iat e nbf convertidas e o aviso se o token já expirou. A decodificação acontece só no seu navegador e não verifica a assinatura.

Exemplos fictícios:

O token é decodificado só no seu navegador e não é enviado nem guardado. Decodificar não verifica a assinatura: o conteúdo exibido pode ter sido alterado por qualquer pessoa.

Cabeçalho

	
Payload

	

Como usar

  1. Cole o token. Pode incluir o prefixo Bearer , que é removido automaticamente.
  2. Clique em Decodificar.
  3. Confira o resumo de tempo (emissão, início de validade, expiração), os alertas e os dois blocos JSON.
  4. Use os exemplos fictícios para ver um token válido, um expirado, um com alg: none e um malformado.

Estrutura de um JWT

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 . eyJzdWIiOiIxMjMiLCJleHAiOjE3NzI4OTc0MDB9 . assinatura
        cabeçalho (Base64URL)                     payload (Base64URL)                  assinatura

São três partes separadas por ponto. As duas primeiras são JSON codificado em Base64URL, e qualquer pessoa consegue lê-las. A terceira é a assinatura, calculada com uma chave secreta (HMAC) ou privada (RSA, ECDSA) sobre as duas primeiras.

Claims de tempo

ClaimSignificado
expMomento a partir do qual o token não deve mais ser aceito.
nbfMomento antes do qual o token ainda não vale.
iatMomento em que o token foi emitido.

Os três são em segundos desde 1970 (tempo Unix). A ferramenta mostra cada um em UTC, no seu fuso e em tempo relativo (“em 59 min”, “há 2 h”), e avisa se algum parece estar em milissegundos, um erro comum de implementação.

Decodificar não é validar

A ferramenta não tem, e não deveria ter, a chave de quem emitiu o token. Ela só lê o conteúdo. Um token alterado à mão aparece aqui decodificado normalmente. Quem garante a autenticidade é o servidor, que precisa verificar a assinatura com a chave correta, exigir o algoritmo esperado (nunca aceitar o que o próprio token declara) e checar exp, nbf, iss e aud.

Uso em QA e desenvolvimento

  • Conferir se o token de um usuário de teste carrega os perfis e permissões esperados.
  • Investigar erros 401 e 403: token expirado, emissor ou audiência errados, relógio do servidor fora de hora.
  • Planejar casos de teste de segurança, como token expirado, assinatura adulterada, alg: none, claims ausentes e tipos errados.
  • Validar tempos de sessão: a diferença entre exp e iat mostra a duração configurada.

Casos de teste sugeridos para APIs com JWT

CenárioEsperado
Token válido200
Token expirado401
Payload alterado sem reassinar401
alg trocado para none401
Token de outro ambiente ou emissor401
Token sem o perfil exigido pela rota403
Sem cabeçalho Authorization401

Limitações

  • Não verifica assinatura nem consulta o emissor.
  • Não decodifica JWE (tokens criptografados com 5 partes): o conteúdo deles só pode ser lido com a chave.
  • O cálculo de expiração usa o relógio do seu computador.

Perguntas frequentes

É seguro colar um token de produção aqui?

O token não sai do seu navegador e não é guardado. Mesmo assim, um token válido dá acesso à conta de alguém: prefira tokens de ambientes de teste e nunca compartilhe a tela ou o texto de um token ativo.

Se dá para ler o payload, o JWT é inseguro?

Não necessariamente. O JWT assinado garante integridade, não sigilo. Por isso não se deve colocar senhas ou dados sensíveis no payload.

Por que o token aparece como válido aqui, mas a API recusa?

A ferramenta só olha o prazo. A API pode recusar pela assinatura, pelo emissor, pela audiência, por revogação ou por diferença de relógio.

Ferramentas relacionadas

Referências