Decodificador JWT
Cole um JSON Web Token para ler o header e o payload, ver quando ele expira e entender cada claim. Seu token nunca sai do seu navegador.
Roda no seu navegadorSem cadastroNada é enviado
Decodificar não é verificar. Qualquer pessoa pode ler o header e o payload de um JWT, porque eles são apenas codificados em base64url. Esta ferramenta mostra o que o token afirma; ela não prova que o token é autêntico. Sempre verifique a assinatura no seu servidor.
Header
Payload
Claims explicados
Verificar assinatura (opcional, HS256/HS384/HS512)
Verifica uma assinatura HMAC com um segredo informado por você, usando a Web Crypto API do navegador. O segredo nunca sai desta página. Tokens RSA/ECDSA precisam da chave pública do emissor e não são verificados aqui.
Como usar: Decodificador JWT
- Cole o token na caixa Token codificado. Um
Bearerno início, vindo de um header Authorization, é ignorado. - O header e o payload são decodificados na hora e exibidos como JSON formatado.
- Leia a tabela Claims explicados:
exp,iatenbfsão convertidos em datas com tempos como “expira em” / “expirou há”. - Confira a barra de status para problemas de expiração e os avisos sobre configurações arriscadas, como
alg: none. - Se quiser, informe o segredo compartilhado para verificar localmente uma assinatura HS256, HS384 ou HS512.
O que tem dentro de um JWT?
Um JSON Web Token (RFC 7519) são três strings base64url unidas por pontos: header.payload.signature. O header indica o algoritmo de assinatura (alg) e o tipo do token. O payload contém os claims, como quem é o usuário e quando o token expira. A assinatura é calculada sobre as duas primeiras partes com um segredo ou uma chave privada.
Decodificar não é verificar
O header e o payload são apenas codificados, não criptografados, então qualquer pessoa com o token consegue lê-los. É por isso que você nunca deve colocar senhas ou segredos no payload de um JWT. Decodificar mostra o que um token diz. Verificar a assinatura, normalmente no seu servidor de API com uma biblioteca como jose ou PyJWT, prova quem o emitiu e que ele não foi alterado. O servidor também deve checar exp, nbf, iss e aud, e rejeitar algoritmos inesperados.
Cola dos claims registrados
| Claim | Significado |
|---|---|
iss | Emissor (issuer): quem criou e assinou o token |
sub | Sujeito (subject): normalmente o ID do usuário |
aud | Público (audience): para qual API o token se destina |
exp | Momento de expiração, em segundos desde a época Unix |
nbf | Não é válido antes deste momento |
iat | Momento de emissão |
jti | ID único do token, útil para listas de revogação |
Depurando erros de “token expired”
Se uma API rejeita um token que parece novo, compare exp e nbf com o relógio do servidor. Pequenas diferenças de relógio entre máquinas são comuns, então a maioria das bibliotecas permite uma tolerância de 30-60 segundos. Confira também se exp está em segundos: um valor em milissegundos é um bug frequente e joga a expiração milhares de anos no futuro.
Perguntas frequentes
É seguro colar um JWT de produção aqui?
Esta ferramenta verifica a assinatura do JWT?
Por que meu token aparece como expirado?
exp está no passado em relação ao relógio do seu computador. Solicite um novo token ou renove-o com o seu refresh token. Se os horários parecerem errados, verifique diferença de relógio ou um valor de exp escrito em milissegundos.Qual a diferença entre JWT, JWS e JWE?
Por que alg “none” é perigoso?
alg: none e só aceitar o algoritmo específico que esperam.