JWT Decoder

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand JWT Decoder

Decodifica o cabeçalho e o payload de um JSON Web Token para você ler as claims, o algoritmo e a expiração.

How it works

Um JWT são três segmentos Base64URL unidos por pontos: cabeçalho, payload e assinatura. Os dois primeiros são codificados, não criptografados, e é por isso que lê-los não exige chave nenhuma — esta ferramenta os decodifica de Base64URL, interpreta o JSON e compara a claim exp com o horário atual para sinalizar a expiração. O segmento de assinatura é exibido tal como está e nunca é conferido contra nada, então nada do que você cola é enviado a lugar algum e nenhum segredo é necessário.

When to use it

  • Ler sub, scope, aud e iss em um bearer token que uma API está rejeitando com 401 ou 403.
  • Distinguir um token expirado de um a que falta apenas uma claim exigida pelo seu serviço.
  • Conferir qual alg e qual kid um provedor de identidade usou, antes de ligar a verificação ao JWKS dele.
  • Confirmar que um fluxo de login emitiu as claims que suas regras de autorização de fato leem.
  • Inspecionar um token capturado na aba de rede do navegador ao rastrear um bug de permissões.

Watch out for

  • Decodificar não é verificar, e um token decodificado não é um token confiável. Qualquer pessoa pode editar um payload, recodificá-lo e produzir algo que decodifica perfeitamente aqui. Só a verificação da assinatura contra a chave do emissor torna uma claim digna de ação.
  • Nunca deixe um servidor confiar no campo alg do token. Escolher o algoritmo de verificação a partir do cabeçalho é o que viabiliza o ataque alg: none e o rebaixamento de RS256 para HS256, em que o atacante assina usando a chave pública como segredo HMAC. Fixe o algoritmo e a chave esperados no código de verificação.
  • O payload é legível por qualquer um que tenha o token, inclusive pelo usuário final. Assinar protege uma claim de ser alterada; não faz nada para escondê-la. Mantenha segredos, ids internos e dados pessoais fora dele.
  • exp, iat e nbf são segundos desde a época, não milissegundos. Um valor de Date.now() do JavaScript em exp joga a expiração dezenas de milhares de anos à frente, e todo verificador conforme vai aceitá-la.

Not the right tool for: Decidir se uma requisição está autorizada. Isso exige verificar a assinatura e as claims no servidor contra a chave do emissor; isto aqui é um apoio de depuração para ler o que um token diz.

Frequently Asked Questions

Decodificar um JWT é o mesmo que verificá-lo?

Não. Decodificar lê o conteúdo codificado em Base64URL. A verificação confere a assinatura contra uma chave secreta. Você consegue decodificar qualquer JWT sem a chave, mas em produção deve sempre verificar.

O que tem no payload de um JWT?

As claims comuns do payload incluem sub (sujeito/ID do usuário), iat (emitido em), exp (expiração), aud (público) e iss (emissor). Claims personalizadas podem ser qualquer coisa.

O que significa a claim exp?

A claim exp é um timestamp Unix que indica quando o token expira. Esta ferramenta mostra se o token está válido no momento ou expirado, com base no exp.

How to Use JWT Decoder

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.