Blog

O que é JWT e Como Funciona? Guia Completo para Iniciantes

Descubra o que é JWT (JSON Web Token), como ele funciona, quais são suas partes e por que é amplamente utilizado para autenticação em aplicações web modernas.

Ilustração mostrando a estrutura de um JWT com Header, Payload e Signature.

O que é JWT e Como Funciona?

Se você já desenvolveu aplicações web modernas, provavelmente encontrou o termo JWT ou JSON Web Token. O JWT é uma das formas mais populares de transmitir informações com segurança entre um cliente e um servidor. Ele é amplamente utilizado para autenticação, autorização e proteção de APIs.

Neste guia, você aprenderá o que é JWT, como ele funciona, como é estruturado e por que se tornou um padrão no desenvolvimento web moderno.


O que é JWT?

JWT (JSON Web Token) é um padrão aberto (RFC 7519) que permite transmitir informações de forma segura utilizando um objeto JSON compacto.

Cada JWT é assinado digitalmente, permitindo verificar se o token foi alterado.

Diferente da autenticação baseada em sessões, o JWT armazena as informações de autenticação dentro do próprio token, em vez de mantê-las no servidor.


Estrutura de um JWT

Um JWT é composto por três partes, separadas por pontos.

xxxxx.yyyyy.zzzzz

1. Header

O Header contém informações sobre o algoritmo de assinatura e o tipo do token.

Exemplo:

{
"alg": "HS256",
"typ": "JWT"
}

Depois disso, o Header é codificado em Base64Url.


2. Payload

O Payload contém os dados do usuário (claims).

Exemplo:

{
"userId": 15,
"email": "john@example.com",
"role": "admin"
}

Ele pode conter:

  • ID do usuário
  • Nome
  • E-mail
  • Função (Role)
  • Permissões
  • Data de expiração

O Payload não é criptografado. Qualquer pessoa que possua o token pode visualizar seu conteúdo.


3. Signature

A Signature garante que o token não foi modificado.

Ela é criada utilizando:

HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)

A chave secreta é conhecida apenas pelo servidor.


Como o JWT Funciona?

O fluxo normalmente acontece da seguinte forma:

  1. O usuário faz login.
  2. O servidor valida as credenciais.
  3. O servidor gera um JWT.
  4. O token é enviado ao cliente.
  5. O cliente armazena o JWT.
  6. Em cada requisição futura, o token é enviado novamente.
  7. O servidor verifica a assinatura.
  8. Se for válida, o acesso é concedido.

Esse processo elimina a necessidade de armazenar sessões no servidor.


Onde o JWT é Utilizado?

O JWT é amplamente utilizado em:

  • Autenticação de usuários
  • APIs REST
  • Aplicações React, Vue e Angular
  • Aplicativos móveis
  • OAuth 2.0
  • Microsserviços
  • API Gateway

Vantagens do JWT

Entre os principais benefícios estão:

  • Autenticação Stateless
  • Tokens compactos
  • Validação rápida
  • Fácil integração entre vários serviços
  • Ideal para aplicativos móveis
  • Fácil escalabilidade

JWT vs Sessões

JWT Sessões
Armazenado no cliente Armazenadas no servidor
Stateless Stateful
Ideal para APIs Ideal para sites tradicionais
Fácil de escalar Requer armazenamento de sessões

Ambas as abordagens são válidas dependendo da arquitetura da aplicação.


O JWT é Seguro?

Sim, desde que seja implementado corretamente.

Boas práticas incluem:

  • Utilizar HTTPS.
  • Definir um tempo de expiração.
  • Não armazenar dados sensíveis no Payload.
  • Utilizar algoritmos de assinatura seguros.
  • Alterar periodicamente a chave secreta.
  • Validar a assinatura de todos os tokens.

Erros Mais Comuns

Os erros mais frequentes são:

  • Armazenar senhas no JWT.
  • Não definir tempo de expiração.
  • Não validar a assinatura.
  • Utilizar chaves secretas fracas.
  • Enviar tokens por HTTP.

Exemplo de JWT

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJ1c2VySWQiOjE1LCJyb2xlIjoiYWRtaW4ifQ.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Embora pareça uma sequência aleatória de caracteres, ela é composta por Header, Payload e Signature.


Conclusão

O JWT é uma das tecnologias mais utilizadas para autenticação em aplicações modernas. Ele permite transmitir informações entre cliente e servidor de forma segura e eficiente, sem armazenar sessões.

Se você desenvolve APIs, aplicações SPA ou aplicativos móveis, entender como o JWT funciona é uma habilidade essencial. Com HTTPS, validação correta e boas práticas de segurança, o JWT oferece uma solução rápida, segura e escalável para autenticação e autorização.