Como decodificar um token JWT (Header, Payload, Signature)
Resumo rapido
Entenda a estrutura de um JWT, o que significam as claims iat, nbf e exp, e a diferença importante entre decodificar e verificar um token com segurança.
Um JWT (JSON Web Token) é uma string compacta usada para autenticar requisições entre cliente e servidor. Ele tem três partes — header.payload.signature — separadas por pontos, e o cabeçalho e o payload são codificados em Base64URL. O Decodificador de JWT da NeatForge decodifica e formata essas partes localmente no navegador.
O que é um JWT?
Um JWT é um padrão aberto (RFC 7519) para transmitir afirmações (claims) entre partes como um objeto JSON. É amplamente usado em autenticação stateless: o servidor emite um token após o login e o cliente o envia em requisições seguintes.
Um JWT é autossuficiente: o payload contém todas as informações necessárias, sem exigir uma consulta ao banco a cada requisição.
As três partes de um JWT
Um JWT tem o formato header.payload.signature:
- Header — descreve o algoritmo de assinatura (ex.:
HS256) e o tipo (JWT). - Payload — contém as claims, como ID do usuário, funções e prazos.
- Signature — garante que o token não foi alterado, usando uma chave secreta.
O cabeçalho e o payload são codificados em Base64URL, uma variante do Base64 que usa - em vez de + e _ em vez de /, e omite o = final. Para entender melhor essa codificação, veja o guia Como codificar e decodificar Base64.
O que significam iat, nbf e exp?
Essas são claims de tempo registradas (registered claims), armazenadas como timestamps Unix em segundos:
iat(issued at) — quando o token foi criado.nbf(not before) — horário mais cedo em que o token passa a ser válido.exp(expiration) — quando o token deixa de ser válido.
Um servidor bem configurado rejeita tokens com exp no passado ou nbf no futuro.
Decodificar vs verificar — a distinção importante
- Decodificar significa ler o conteúdo do header e do payload. Qualquer pessoa pode fazer isso — o JWT não é criptografado.
- Verificar significa confirmar que a signature é válida usando a chave secreta ou pública. Só quem tem a chave pode fazer isso.
Apenas decodificar um JWT não prova que ele é legítimo. Qualquer pessoa pode criar um token com claims arbitrárias; só a verificação da assinatura atesta a origem.
Como decodificar um JWT com segurança
- Abra o Decodificador de JWT.
- Cole o token na caixa de entrada.
- Veja o cabeçalho e o payload formatados como JSON.
- Confira o status das claims
iat,nbfeexp(verde = ativo, vermelho = expirado).
A decodificação acontece no navegador; o token não é enviado a nenhum servidor.
Privacidade
Embora a decodificação seja local, evite colar JWTs em sites não confiáveis e nunca compartilhe tokens em capturas de tela ou tickets de suporte. Para tokens muito sensíveis, considere uma ferramenta offline.
Perguntas frequentes
Esta ferramenta verifica a assinatura do JWT? Não. Ela apenas decodifica o token. A verificação exige o segredo de assinatura ou a chave pública.
É seguro colar meu JWT aqui? Sim, toda a decodificação é local. Ainda assim, evite compartilhar JWTs em locais públicos.
Por que meu token tem três partes? São o cabeçalho, o payload e a assinatura, separados por pontos e codificados em Base64URL.