Decodificador de JWT

Veja o que tem dentro de um JSON Web Token.

Cole um token para decodificá-lo.
Cabeçalho
Payload
Assinatura

Esta ferramenta decodifica tokens, mas nunca verifica assinaturas. Seu token fica nesta aba do navegador.

Funciona no navegador. Nada do que você digita é enviado a lugar nenhum.

Como decodificar um JWT

  1. Cole o token, com ou sem o prefixo Bearer.
  2. Leia o header e o payload, mostrados como JSON formatado.
  3. Confira a tabela de claims para emissor, audiência e expiração.

As três partes de um JWT

ParteCodificaçãoContém
HeaderJSON em base64urlAlgoritmo de assinatura (alg) e tipo de token (typ)
PayloadJSON em base64urlAs claims: os dados de fato do token
AssinaturaBytes em base64urlProva de que o header e o payload não foram alterados

Algoritmos de assinatura comuns

Valor de algTipoNota
HS256Simétrico, segredo compartilhadoComum para um único app que emite e verifica seus próprios tokens
RS256Assimétrico, RSAComum quando outra parte precisa verificar o token, como no OAuth
ES256Assimétrico, curva elípticaAssinaturas mais curtas que RSA para o mesmo nível de segurança
noneSem assinaturaUm verificador deveria sempre rejeitar esse algoritmo

Claims padrão, da RFC 7519

  • exp, nbf e iat são todos valores NumericDate: segundos inteiros desde o epoch Unix, nunca milissegundos.
  • aud pode ser uma única string ou um array de strings, quando um token é destinado a mais de uma audiência.
  • jti deve ser único por token, o que é o que torna possível bloquear um token específico.
  • Nenhuma das claims padrão é obrigatória. Um token pode carregar só as claims personalizadas que uma aplicação definir.

Perguntas frequentes sobre Decodificador de JWT

Quais são as três partes de um JWT?

Um header, um payload e uma assinatura, cada um codificado em base64url e unidos por pontos. O header nomeia o algoritmo de assinatura, o payload guarda as claims, e a assinatura permite ao servidor conferir quem emitiu o token.

Esta ferramenta verifica a assinatura?

Não. Ela decodifica o header e o payload e nunca verifica a assinatura. Verifique tokens no seu servidor com a chave secreta ou pública antes de confiar neles. O token que você cola nunca sai do navegador.

O payload de um JWT é criptografado?

Não em um JWT assinado normal. Ele é só codificado, então qualquer pessoa com o token consegue lê-lo, por isso senhas e dados privados nunca deveriam entrar em um. Tokens criptografados (JWE) têm cinco partes e precisam da chave.

O que significam exp, iat e nbf?

São horários em segundos desde 1º de janeiro de 1970 (UTC). exp é quando o token expira, iat é quando foi emitido, e nbf é o horário antes do qual ele não deve ser aceito.

Por que meu token aparece como expirado?

O horário exp dele é anterior ao relógio do seu dispositivo. Tokens de acesso costumam durar só de 5 a 60 minutos, então peça um novo, e confira se o relógio do seu computador está certo.

O que a RFC 7519 define?

Ela define o próprio formato JWT: três partes base64url unidas por pontos, e o significado das claims padrão como iss, sub, exp e aud. Ela não exige nenhum algoritmo de assinatura específico.

Um JWT pode ser revogado antes de expirar?

Não pelo próprio token, já que ele é só dado assinado. Revogar um antes do tempo precisa de suporte no servidor, como uma lista de bloqueio pela claim jti, ou uma expiração curta combinada com um token de atualização separado.

Por que exp e iat aparecem como números grandes em vez de datas?

Eles são guardados no token como valores NumericDate, segundos inteiros desde o epoch Unix (1º de janeiro de 1970 UTC). Esta página mostra o número bruto ao lado de uma data legível, por conveniência.

Ferramentas relacionadas