JWT Decoder - Portal WebEngine
Voltar para Ferramentas

JWT Decoder

Decodifique tokens JWT (JSON Web Token)

Espaço para Anúncio

O que é JWT (JSON Web Token)?

JWT (JSON Web Token) é um padrão aberto (RFC 7519) para transmitir informações de forma segura entre duas partes como um objeto JSON assinado digitalmente. É amplamente usado em sistemas de autenticação e autorização em APIs REST, permitindo que o servidor valide o usuário sem precisar manter estado da sessão.

Um token JWT é composto por três partes separadas por pontos: o Header(algoritmo de assinatura e tipo do token), o Payload(dados do usuário como ID, email, permissões e tempo de expiração) e a Signature(assinatura digital que garante a integridade do token). As duas primeiras partes são Base64URL, e a terceira é uma assinatura HMAC ou RSA.

É importante entender que JWT não é criptografia— o header e payload são apenas codificados em Base64, podendo ser lidos por qualquer pessoa. A segurança reside na signature, que impede a alteração dos dados. Nunca coloque dados verdadeiramente sensíveis (senhas, CPFs) no payload de um JWT.

Casos de Uso e Boas Práticas

  • Use JWT para autenticação stateless em APIs REST — o token elimina a necessidade de sessões no servidor.
  • Defina sempre um tempo de expiração curto (15-60 min) e use refresh tokens para renovação segura.
  • Armazene tokens JWT no lado do cliente usando httpOnly cookies, não em localStorage (vulnerável a XSS).
  • Nunca inclua dados sensíveis no payload — ele pode ser lido por qualquer pessoa com o token.
  • Use algoritmos modernos como RS256 (RSA) para assinatura em produção, evitando o HMAC com secrets fracas.
  • Valide o iss (emissor), aud (audiência) e exp (expiração) ao receber um token.

Perguntas Frequentes

JWT é seguro? Posso confiar nos dados do payload?

JWT é seguro quando implementado corretamente. A signature garante que os dados não foram alterados. Porém, o payload NÃO é criptografado — qualquer pessoa pode decodificar (como esta ferramenta faz). A segurança está em impedir a falsificação, não em esconder os dados.

Qual a diferença entre JWT e session token tradicional?

Session tokens são armazenados no servidor (stateful), enquanto JWT contém os dados do usuário no próprio token (stateless). JWT é ideal para APIs e microsserviços porque não precisa de um banco de dados centralizado para validar sessões. Porém, revogar um JWT antes da expiração é mais difícil que invalidar uma sessão.

Onde devo armazenar o JWT no navegador?

A opção mais segura são cookies httpOnly + Secure + SameSite, que protegem contra ataques XSS. Evite armazenar em localStorage ou sessionStorage, que são acessíveis por JavaScript e vulneráveis a XSS. Se usar armazenamento no lado do cliente, implemente proteção contra XSS rigorosa.

O que significa "exp" e "iat" no payload?

exp (expiration time) é o timestamp Unix de quando o token expira. iat (issued at) é o timestamp de quando o token foi criado. Esses claims são essenciais para controlar a validade do token e implementar renovação automática via refresh tokens.

Posso revogar um JWT antes da expiração?

JWTs por padrão não suportam revogação — eles são válidos até expirar. Para revogação, use uma denylist no servidor (Redis com TTL), use tokens de curta duração + refresh tokens (revogue o refresh), ou use o endpoint de logout para invalidar o token no cliente.