JWT Decoder

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

{{ jwt.message }}

Descrição

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.

Detalhamento técnico

Pontos 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.

Trecho para testar

  • Há também o bloco "Exemplo de Código" com o trecho completo; use esse texto rápido para colar nos campos e validar: Estrutura — header.payload.signature (Base64URL)

Guia da ferramenta

  • O que é JWT JSON Web Token: três partes em Base64URL (header, payload, assinatura), usado em autenticação stateless. O payload contém claims (sub, exp, etc.), muitas vezes só Base64, não cifrado.

  • O que a ferramenta faz Decodifica header e payload para JSON legível. Não valida a assinatura nem confia no emissor.

  • Por que usar Depurar expiração (exp), escopos e claims durante desenvolvimento. Nunca colar tokens de produção em sites não confiáveis.

Exemplo de Código

Exemplo de código
header.payload.signature (Base64URL)

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.