Dev Tools

JWT Decoder

Cole o token e veja header e payload em JSON. A assinatura não é validada aqui.

JWT Decoder

{{ jwt.message }}

Como usar JWT Decoder

O JWT chegou como resposta a um problema real que o crescimento das SPAs e dos microserviços criou no início dos anos 2010. Antes dele, o modelo padrão de autenticação na web era baseado em sessões do lado do servidor: o servidor guarda um registro de quem está logado em memória, banco de dados ou Redis, e o navegador recebe um cookie com o ID da sessão. Isso funciona bem num servidor único, mas em arquiteturas distribuídas com múltiplas instâncias você precisa de sessões compartilhadas, sticky sessions ou um cache centralizado. Mike Jones, John Bradley e Nat Sakimura formalizaram o JWT no RFC 7519 em 2015, mas o conceito circulava desde 2010 no contexto do OAuth 2.0 — o protocolo de autorização que o Google, Facebook e Twitter usavam para permitir login em sites de terceiros.

A estrutura de um JWT são três partes separadas por ponto, cada uma em Base64URL: cabeçalho, payload e assinatura. O cabeçalho indica o algoritmo — HS256 usa HMAC com SHA-256 e chave simétrica compartilhada; RS256 usa RSA com SHA-256 e par de chaves assimétrico. O payload carrega os claims padrão: sub para o ID do usuário, exp para o timestamp de expiração, iat para a emissão e iss para o emissor. A assinatura garante que o token não foi adulterado, mas não criptografa o payload — qualquer pessoa pode decodificar um JWT em Base64, só não pode criar um token válido sem a chave. Uma vulnerabilidade histórica: algumas bibliotecas aceitavam tokens com o algoritmo declarado como none, pulando a verificação de assinatura completamente.

O debate sobre usar JWT para autenticação de aplicações web é mais rico do que parece. A vantagem principal é a natureza stateless: o servidor não precisa consultar banco de dados a cada requisição, genuinamente útil em microserviços onde dezenas de serviços precisam verificar autenticação. O problema central é que você não pode invalidar um token antes de ele expirar — se um usuário faz logout ou é comprometido, o token continua válido até exp. A solução usual, uma lista negra de tokens revogados no Redis, reconstrói exatamente o estado centralizado que você estava tentando evitar. Para aplicações web tradicionais com um servidor, tokens opacos com sessões no servidor costumam ser a escolha mais simples e segura. JWT brilha em OAuth e OIDC para login federado e em tokens de curta duração entre microserviços.

Estrutura

header.payload.signature (Base64URL)

Perguntas frequentes

Para que serve esta ferramenta?

Ela roda 100% no seu navegador: útil para validar, formatar ou converter dados no dia a dia de desenvolvimento.

Meus dados são enviados a algum servidor?

O processamento é feito localmente via JavaScript. Não armazenamos o conteúdo que você cola nas caixas de texto.

Posso usar em produção ou para dados reais?

Use por sua conta e risco. Para segredos (senhas, tokens), prefira ambientes controlados e políticas da sua empresa. E lembre sempre de revisar os conteúdos gerados. Nunca confie cegamente nas coisas que vê na internet.

Continue nas Dev Tools

Ferramentas relacionadas para acelerar tarefas comuns de desenvolvimento.