Ir para conteúdo
Desenvolvimento Web Nível: intermediário

JWT

JWT, sigla para JSON Web Token, é um formato compacto de token usado para transmitir informações de autenticação de forma segura entre cliente e servidor.

JWT é composto por três partes separadas por pontos: um cabeçalho, um payload com os dados do usuário e uma assinatura que garante que o token não foi alterado. Depois do login, o servidor gera esse token e o cliente passa a enviá-lo em cada requisição para provar que está autenticado.

Diferente de sessões tradicionais armazenadas no servidor, o JWT carrega as informações dentro de si mesmo, o que facilita escalar aplicações sem depender de armazenamento compartilhado de sessão entre servidores.

O payload de um JWT não é criptografado por padrão

Um erro comum é achar que o conteúdo de um JWT está protegido de leitura. Na verdade, o payload é apenas codificado, não criptografado, e pode ser decodificado por qualquer pessoa. A segurança do token vem da assinatura, que impede alteração dos dados sem invalidar o token.

Como funciona na prática

  • O usuário faz login enviando suas credenciais para o servidor
  • O servidor valida as credenciais e gera um JWT assinado com uma chave secreta
  • O token é enviado de volta ao cliente e armazenado, geralmente em memória ou cookie seguro
  • Em cada requisição seguinte, o cliente envia o JWT no cabeçalho Authorization
  • O servidor valida a assinatura do token para confirmar que a requisição é legítima

Exemplo Prático

Uma API REST usa JWT para autenticar usuários mobile: após o login, o aplicativo armazena o token e o envia em cada chamada, permitindo que a API valide a identidade sem precisar consultar um banco de sessões a cada requisição.

Por que isso é importante?

JWT importa porque é um dos padrões mais usados para autenticação stateless em APIs modernas, especialmente em arquiteturas distribuídas e integrações entre múltiplos sistemas.

Perguntas Frequentes (FAQ) sobre JWT

JWT é o mesmo que OAuth?

Não. JWT é um formato de token, enquanto OAuth é um protocolo de autorização que pode usar JWT como um dos formatos de token que emite.

JWT expira automaticamente?

Só se o campo de expiração for definido explicitamente no payload durante a criação do token. Sem isso, o token permanece válido indefinidamente.