Decodificador de JWT
Inspecione o header e o payload de um JSON Web Token. A verificação não é feita por design — esta ferramenta é só para debug.
O que é um JWT?
Um JSON Web Token (JWT, pronuncia-se "djóte") é uma forma compacta e segura para URLs de carregar JSON assinado entre partes — geralmente entre um servidor de autenticação e o seu app. Um JWT tem três partes em base64url separadas por ponto: header.payload.assinatura. O header diz qual algoritmo de assinatura foi usado; o payload é um JSON com claims (sujeito, expiração, dados customizados); a assinatura permite ao receptor verificar que o token não foi adulterado. O padrão está na RFC 7519.
Como usar
Cole um JWT na caixa acima. A ferramenta separa pelos pontos, decodifica os dois primeiros segmentos em base64url e formata o JSON resultante em dois painéis — Header e Payload. O terceiro painel mostra a assinatura crua. Se o payload tiver iat, nbf ou exp, a ferramenta também exibe esses valores como timestamps UTC legíveis e diz se o token expirou. A decodificação é ao vivo: assim que você termina de digitar, os painéis atualizam.
Decodificado ≠ verificado
Um decodificador de JWT é uma ajuda para debug, não uma ferramenta de segurança. Qualquer um pode decodificar um JWT — a codificação é reversível por design. O que torna o token confiável é a assinatura, e verificar a assinatura precisa do segredo do emissor (HS256) ou da chave pública (RS256, ES256). Nunca confie no conteúdo de um JWT em código de produção sem verificar a assinatura antes. Use a biblioteca de JWT que vem com o seu framework; nunca implemente do zero.
Claims padrão de JWT
| Claim | Nome | Significado |
|---|---|---|
iss | Emissor | Identifica quem emitiu o token (ex: a URL do servidor de auth). |
sub | Sujeito | Identifica a entidade sobre a qual o token fala — geralmente um ID de usuário. |
aud | Audiência | Para quem o token é destinado. Receptores devem rejeitar tokens que não são para eles. |
exp | Expiração | Timestamp Unix depois do qual o token não deve mais ser aceito. |
nbf | Não antes | Timestamp Unix antes do qual o token não pode ser aceito. |
iat | Emitido em | Timestamp Unix de quando o token foi emitido. |
jti | ID do JWT | Identificador único do token, útil para listas de revogação. |
Perguntas frequentes
Meu JWT é enviado para algum lugar?
Por que esta ferramenta não verifica a assinatura?
jwt para verificar assinaturas num ambiente controlado.Aparece "Não é um JWT" — o que está errado?
Bearer que veio junto do header HTTP (tire), só o payload foi colado (você precisa do header e da assinatura também), ou o token na verdade é um JWE (criptografado), que tem cinco segmentos e não dá para decodificar sem a chave privada do destinatário.Por que o payload é base64url e não base64 normal?
+, / e o padding = — nenhum dos três é seguro em URL. Base64url troca + por -, / por _ e tira o padding. Assim o resultado pode ir em URL ou header HTTP sem novo escape. Este decodificador converte de volta para base64 padrão antes de chamar o atob do navegador.O que significa alg: none?
alg: none existe na spec, mas é perigoso na prática: uma classe famosa de vulnerabilidades explorou bibliotecas que aceitavam tokens com alg: none como se estivessem assinados. Se você vir isso num token de produção, é um achado sério.
EN
PT
ES