1001Ferramentas
🪪 Segurança

Explicador de claims JWT

Lista todas as claims registradas (iss, sub, aud, exp, nbf, iat, jti) com descrição e validação básica do payload.

Decoda o payload e explica cada claim conforme RFC 7519. A assinatura NÃO é validada.

Ler o que está dentro de um JWT

Um JWT tem três partes separadas por ponto: cabeçalho, payload e assinatura. As duas primeiras são apenas base64url — não são criptografia. Isso significa que qualquer pessoa com o token em mãos lê o conteúdo, e é a razão de nunca colocar senha, documento ou dado sensível no payload. A assinatura não esconde nada; ela só garante que ninguém alterou o que está escrito.

Cole o token e a página decodifica o payload, lista as claims registradas com a explicação de cada uma e converte os campos de tempo para data legível. O exp ganha ainda o veredito: expirado, ou quantos minutos ainda restam. Claims que não fazem parte do conjunto registrado — role, tenant, email, scope — aparecem listadas à parte, como claims públicas ou privadas.

Duas coisas ficam de fora, por decisão de escopo. A assinatura não é verificada: para isso seria preciso a chave secreta ou a chave pública do emissor, e nada disso deve viajar até uma página. E a leitura é local, no seu navegador — nenhum token é enviado a servidor algum, o que importa porque um JWT colado numa ferramenta online é, na prática, uma credencial exposta. Ainda assim, evite colar aqui um token de produção que continue válido.

Perguntas frequentes

Decodificar é o mesmo que validar?
Não, e confundir os dois é uma falha de segurança comum. Decodificar mostra o conteúdo; validar significa recalcular a assinatura com a chave, conferir exp e nbf, e checar iss e aud. Um atacante pode trocar o payload livremente — só a validação da assinatura detecta isso.
Meu token tem acento e a decodificação falhou. Por quê?
A função do navegador que decodifica base64 trabalha com bytes latin-1, então um payload com caractere multibyte pode quebrar. É limitação da decodificação em navegador, não do token. Nesses casos, decodifique pelo backend ou por uma biblioteca que trate UTF-8 corretamente.
Por que o exp aparece como um número gigante?
Porque é um timestamp Unix: segundos desde 1º de janeiro de 1970. A página já converte para data e hora ao lado do valor cru. Atenção ao construir tokens: alguns ambientes usam milissegundos, e um exp em milissegundos vira uma data no ano 55000 — o token nunca expira.

Ferramentas Relacionadas