tigtools

Decodificador de JWT

Cole um JWT para ler o cabeçalho e as claims e ver quando ele expira. A decodificação acontece no seu navegador e não verifica a assinatura.

Executado no seu navegador Sem cadastro

Decodificar não é o mesmo que verificar: qualquer pessoa pode criar um token com qualquer conteúdo. Esta ferramenta não verifica a assinatura. Ela funciona apenas no seu navegador, mas ainda assim evite colar tokens ativos de produção em qualquer site.

Como usar

  1. Copie um token de um cabeçalho Authorization, de um cookie ou das ferramentas de desenvolvedor do navegador. Um “Bearer ” no início é removido automaticamente.
  2. Cole o token no campo. O cabeçalho e o payload aparecem como JSON formatado.
  3. Confira a linha de status e a tabela de claims para ver o emissor, o público-alvo e as datas de expiração no seu horário local.
  4. Copie o JSON do cabeçalho ou do payload se precisar dele em outro lugar.

Como funciona

Um JSON Web Token (JWT, RFC 7519) em seu formato assinado mais comum (JWS) consiste em três partes codificadas em base64url e separadas por pontos. O cabeçalho informa qual algoritmo assinou o token, por exemplo, HS256 (HMAC com SHA-256) ou RS256 (RSA). O payload contém as claims: declarações sobre o usuário e o próprio token. A assinatura permite que o servidor verifique se o cabeçalho e o payload não foram alterados.

O cabeçalho e o payload são apenas codificados, não criptografados. Qualquer pessoa com um token pode ler seu conteúdo, e é exatamente isso que esta ferramenta faz. Não inclua segredos em payloads de JWT.

Decodificar não comprova nada sobre um token. Sem a chave do emissor, ninguém pode saber se a assinatura é legítima; por isso, nunca use o resultado desta ferramenta para decidir se deve confiar em um token. A verificação deve ser feita no seu servidor, com uma biblioteca JWT atualizada que valide a assinatura, o algoritmo, exp, nbf, iss e aud.

As claims registradas são explicadas na tabela. exp, nbf e iat são valores NumericDate: segundos desde 1º de janeiro de 1970 UTC. A ferramenta os converte em datas no seu fuso horário e os compara com o relógio do seu dispositivo, sem a pequena margem de tolerância que os servidores costumam permitir para diferenças entre relógios. Se o relógio do seu dispositivo estiver errado, o status também estará.

Tokens com cinco partes são JWT criptografados (JWE). O payload não pode ser decodificado sem a chave, então a ferramenta apenas informa o formato.

Exemplos

Por que minha API está retornando 401?

Decodifique o token de acesso enviado pelo seu app. Se a linha de status disser “Expirado em …”, o cliente precisa renovar o token. Se aud mostrar https://api.example.com, mas você estiver chamando https://api2.example.com, o público não corresponde.

Verificar um token de ID do OpenID Connect

Um token de ID de um provedor de login contém iss (o provedor), sub (o ID de usuário estável), aud (o ID do seu cliente), iat e exp, além de claims de perfil, como email e name. Decodificá-lo mostra quais claims seu app realmente recebe.

Como ler uma claim de data e hora

Um payload contém "exp": 1735689600. A tabela de claims mostra esse valor como 1º de janeiro de 2025, 00:00:00 UTC, convertido para o seu horário local, e informa quanto tempo se passou desde então ou quanto falta para essa data.

Perguntas frequentes

Esta ferramenta verifica a assinatura do JWT?

Não. A ferramenta apenas decodifica o cabeçalho e o payload. Para verificar a assinatura, é necessário ter o segredo (para HS256) ou a chave pública do emissor (para RS256 e ES256). A verificação deve ser feita no seu servidor com uma biblioteca confiável.

É seguro colar meu token aqui?

O token é decodificado no seu navegador e não é enviado a lugar algum. Mesmo assim, um token válido funciona como uma senha até expirar. Por isso, prefira tokens expirados ou de teste e nunca cole tokens de produção em ferramentas nas quais não confia.

Por que qualquer pessoa pode ler o payload?

JWTs assinados são codificados em base64url, que não é criptografia. A assinatura protege o token contra alterações, mas não impede que ele seja lido. Se o conteúdo precisar ser secreto, use um JWT criptografado (JWE) ou mantenha os dados no servidor.

O que significa “exp” e qual é a unidade?

exp é o horário de expiração no formato NumericDate: segundos inteiros (não milissegundos) desde 1970-01-01 00:00:00 UTC. O token deve ser rejeitado nesse momento ou depois dele.

Por que aparece o erro “base64url inválido”?

É provável que o token tenha sido cortado ou alterado durante a cópia, por exemplo, se os caracteres finais foram removidos, se foram incluídas aspas ao redor ou se houve codificação de URL (%2E em vez de um ponto). Cole o token bruto exatamente como foi emitido.

Privacidade

O token é decodificado com JavaScript no seu navegador. Ele não é enviado a nenhum servidor, armazenado nem incluído em análises. Não há verificação de assinatura nem consulta de chave, portanto, nenhuma solicitação de rede é feita.