Um JWT (JSON Web Token) funciona de maneira parecida com uma pulseira de acesso em um resort.
Quando você chega ao resort e apresenta seus documentos na recepção, o hotel confirma sua identidade. No mundo digital, isso seria o momento em que você faz login com usuário e senha.
Depois de confirmar sua identidade, o hotel coloca uma pulseira no seu braço.
```text id="jwt001"
👤 Usuário
│
│ Login + senha
▼
🔐 Sistema
│
│ Identidade confirmada
▼
🎫 JWT
A partir desse momento, você não precisa apresentar seus documentos toda vez que quiser utilizar algum serviço do resort.
### Como funciona?
Imagine que você queira entrar no restaurante:
```text id="jwt002"
👤 Você
│
▼
🍽️ Restaurante
│
▼
🎫 "Possui pulseira?"
│
├── ✅ Sim → Entrada permitida
│
└── ❌ Não → Acesso negado
No mundo digital, acontece algo parecido:
```text id="jwt003"
👨💻 Usuário
│
▼
🌐 Aplicação
│
▼
🎫 JWT
│
▼
🔐 Verifica o token
│
├── ✅ Válido → Acesso permitido
│
└── ❌ Inválido → Acesso negado
O JWT acompanha as requisições feitas pelo usuário e permite que o sistema verifique se ele está autenticado.
### O que existe dentro de um JWT?
O token pode carregar informações sobre o usuário e sobre o acesso dele.
Por exemplo:
```text id="jwt004"
🎫 JWT
👤 Usuário: João
🔑 Função: Administrador
📅 Expiração: 30/09/2026
Essas informações são chamadas de claims.
É importante lembrar que um JWT não deve ser usado para guardar senhas ou informações secretas. O token pode ser lido por quem o possui, então os dados armazenados nele devem ser escolhidos com cuidado.
Por que usar JWT?
Uma das vantagens é que a aplicação pode verificar o token sem precisar consultar o banco de dados (lembrando que mesmo utilizando JWT, ainda sim a aplicação pode consultar o banco) a cada requisição.
Por exemplo:
```text id="jwt005"
Sem JWT
👤 Usuário
│
▼
🌐 Sistema
│
▼
🗄️ Banco de Dados
│
▼
"Esse usuário está logado?"
Com JWT:
```text id="jwt006"
Com JWT
👤 Usuário
│
▼
🌐 Sistema
│
▼
🎫 JWT
│
▼
✅ Token válido
Isso pode ajudar a tornar o processo de autenticação mais simples e eficiente.
JWT e permissões
O JWT também pode carregar informações relacionadas às permissões do usuário.
Por exemplo:
```text id="jwt007"
🎫 JWT
│
├── 👤 Usuário: João
└── 🔑 Função: Administrador
│
▼
🛠️ Painel administrativo
│
▼
✅ Acesso
Enquanto outro usuário pode ter apenas acesso a funcionalidades comuns:
```text id="jwt008"
🎫 JWT
│
├── 👤 Usuário: Maria
└── 👤 Função: Usuário
│
▼
🛠️ Painel administrativo
│
▼
❌ Acesso
JWT é a mesma coisa que login?
Não exatamente.
O login é o processo de confirmar a identidade do usuário.
O JWT é o token gerado após essa autenticação, que pode ser utilizado para representar aquela sessão/autorização nas próximas requisições.
```text id="jwt009"
🔐 Login
│
▼
✅ Identidade confirmada
│
▼
🎫 JWT
│
▼
🌐 Próximas requisições
### Resumindo
> **JWT é um token utilizado para transmitir informações de autenticação e autorização entre sistemas.**
Ele funciona como uma **pulseira de acesso**: depois que sua identidade é confirmada, você utiliza a pulseira para acessar os serviços permitidos sem precisar apresentar seus documentos novamente a cada momento.
### Exemplo do dia a dia 🏨
No resort:
```text
📄 Documento
│
▼
🏨 Recepção
│
▼
🎫 Pulseira
│
┌───┼────┐
▼ ▼ ▼
🍹 🍽️ 🏊
No software:
🔐 Login
│
Top comments (0)