Skip to main content
CheckTown
Dev Tools

JWT Encoder: Criar e assinar JSON Web Tokens para autenticacao

Publicado 7 min de leitura
Neste artigo

O que e um JWT?

Um JSON Web Token (JWT) e um formato de token compacto e seguro para URL usado para transmitir informacoes de forma segura entre partes como um objeto JSON. Um JWT consiste em tres partes codificadas em Base64URL separadas por pontos: cabecalho.carga-util.assinatura.

Os JWTs permitem autenticacao sem estado — o servidor nao precisa armazenar dados de sessao porque todas as informacoes necessarias estao incorporadas no proprio token.

Estrutura do JWT explicada

Cada JWT e composto por tres partes distintas:

  • Cabecalho (Header) — um objeto JSON especificando o tipo de token (typ: JWT) e o algoritmo de assinatura (alg: HS256, RS256, etc.)
  • Carga util (Payload) — um objeto JSON contendo claims como iss (emissor), sub (sujeito), exp (expiracao), iat (data de emissao) e dados personalizados
  • Assinatura (Signature) — criada assinando o cabecalho e carga util codificados com uma chave secreta (HMAC) ou chave privada (RSA/ECDSA)

A carga util nao e criptografada — qualquer pessoa pode decodifica-la. Nunca armazene informacoes sensiveis no payload de um JWT.

Algoritmos de assinatura

A escolha do algoritmo determina como a assinatura JWT e criada e verificada:

  • HMAC (HS256, HS384, HS512) — algoritmos simetricos que usam a mesma chave secreta para assinar e verificar
  • RSA (RS256, RS384, RS512) — algoritmos assimetricos que usam chave privada para assinar e publica para verificar
  • ECDSA (ES256, ES384, ES512) — algoritmos assimetricos usando criptografia de curva eliptica

Para a maioria das aplicacoes web, HS256 e suficiente. Escolha RS256 ou ES256 quando tokens precisam ser verificados por terceiros.

Experimente gratuitamente — sem cadastro

Criar e assinar JWTs →

Codificacao vs decodificacao

Codificar um JWT significa criar um novo token montando o cabecalho, carga util e gerando a assinatura.

Decodificar um JWT pode significar extrair claims sem verificar a assinatura ou verificar completamente a assinatura. Sistemas em producao devem sempre verificar a assinatura.

Casos de uso comuns

Os JWTs tornaram-se o padrao para autenticacao e autorizacao modernas:

  • Autenticacao de API — clientes incluem o JWT no cabecalho Authorization (Bearer token)
  • Tokens de acesso OAuth 2.0 — provedores OAuth emitem JWTs como tokens de acesso
  • Comunicacao entre microservicos — servicos passam JWTs para propagar identidade e permissoes
  • Single Sign-On (SSO) — um provedor de identidade central emite um JWT aceito por multiplas aplicacoes

Melhores praticas de seguranca

JWTs sao poderosos mas requerem implementacao cuidadosa:

  • Definir tempos de expiracao curtos
  • Nunca armazenar dados sensiveis no payload
  • Sempre validar todos os claims
  • Usar exclusivamente HTTPS
  • Rejeitar o algoritmo "none"

Perguntas frequentes

Qual a diferenca entre JWT e cookies de sessao?

Cookies de sessao armazenam um ID no cliente e os dados no servidor. JWTs sao autocontidos — todos os dados estao no token.

Como revogar um JWT antes da expiracao?

Como JWTs sao stateless, nao ha mecanismo nativo de revogacao. Estrategias comuns incluem blocklists e rotacao de refresh tokens.

Existe limite de tamanho para JWTs?

Nao ha limite formal, mas limites praticos existem. Recomenda-se manter tokens abaixo de 4 KB.

Ferramentas relacionadas