O que e JWT
JWT (JSON Web Token, pronunciado “jot”) e um formato compacto para trocar informacoes de forma segura entre dois sistemas. E padronizado pela RFC 7519 e usado principalmente para autenticacao e autorizacao em aplicacoes web.
Problema que o JWT resolve: Na autenticacao tradicional baseada em sessao, o servidor precisava manter as informacoes de sessao. Com JWT, o servidor se torna stateless, melhorando a escalabilidade.
Estrutura do JWT
O JWT e composto por tres partes, cada uma codificada em Base64URL e concatenadas por pontos (.).
xxxxx.yyyyy.zzzzz
↓ ↓ ↓
Header.Payload.Signature
1. Header (Cabecalho)
{
"alg": "HS256",
"typ": "JWT"
}
2. Payload (Carga Util)
{
"sub": "1234567890",
"name": "Joao Silva",
"iat": 1705234800,
"exp": 1705238400
}
3. Signature (Assinatura)
E o header e payload assinados com uma chave secreta.
Importante: O payload do JWT e apenas codificado em Base64URL, nao e criptografado. Nao inclua informacoes sensiveis no payload.
Access Token e Refresh Token
| Tipo | Access Token | Refresh Token |
|---|---|---|
| Uso | Autenticacao de acesso a API | Renovacao do access token |
| Validade | Curta (15 minutos a 1 hora) | Longa (7 a 30 dias) |
| Local de armazenamento | Memoria ou Cookie de curta duracao | Cookie HttpOnly |
Melhores Praticas de Seguranca
- Definir tempo de expiracao apropriado
- Usar chaves secretas fortes
- Especificar o algoritmo explicitamente
- Armazenar em Cookies HttpOnly
- Nao incluir informacoes sensiveis
Resumo
O JWT e uma ferramenta poderosa para realizar autenticacao stateless. Ao entender sua estrutura e implementa-lo corretamente, voce pode construir sistemas de autenticacao seguros e escalaveis.
← Voltar para a lista