Fala, meus consagrados! Beleza?
Em um artigo aqui já publicado, estudamos o JWT (JSON Web Token). Ele é um padrão aberto usado para representar informações de forma compacta, segura e verificável entre duas partes.
Vamos estudar outros aspectos importantes desse padrão!
Como o JWT funciona na autenticação?
Em um fluxo típico de autenticação, o processo funciona assim:
Primeiro, o usuário envia suas credenciais ao servidor. Após validar login e senha, por exemplo, o servidor gera um JWT contendo informações sobre o usuário e devolve esse token ao cliente. A partir daí, o cliente passa a enviar o token nas requisições seguintes, geralmente no cabeçalho HTTP Authorization, no formato:
Authorization: Bearer <token>
Quando recebe a requisição, o servidor verifica a assinatura do token, confere se ele expirou, valida emissor, audiência e demais regras, e então decide se a requisição pode prosseguir.
Esse modelo é muito usado porque reduz a necessidade de manter sessões tradicionais no servidor, favorecendo arquiteturas mais stateless.
Relação entre JWT e APIs REST
O JWT aparece com frequência em APIs REST por combinar bem com o princípio de ausência de estado no servidor. Em vez de o servidor manter uma sessão armazenada em memória ou banco de dados, ele pode confiar nas informações contidas no token enviado pelo cliente a cada requisição.
Isso traz vantagens de escalabilidade e simplicidade em ambientes distribuídos. Entretanto, isso não significa que o uso de JWT torne automaticamente a arquitetura “mais segura”. A segurança depende da forma como o token é gerado, transmitido, armazenado, validado e revogado.
Principais algoritmos usados em JWT
O campo alg do header informa o algoritmo usado para assinar o token. Em provas e na prática, os principais grupos são:
- Algoritmos simétricos usam a mesma chave para assinar e validar;
- Exemplo: HS256;
- Nesse caso, emissor e validador precisam conhecer a mesma chave secreta;
- Algoritmos assimétricos usam par de chaves, uma privada para assinar e outra pública para verificar;
- Exemplos:
- RS256; e
- ES256.
Aqui, a chave privada permanece com o emissor, enquanto a chave pública pode ser distribuída aos validadores. Esse modelo é muito útil em ambientes com múltiplos serviços consumidores do token.
Vantagens do uso de JWT
O JWT apresenta várias vantagens importantes em sistemas modernos. A primeira é a compacidade. Como o token é pequeno e textual, ele pode ser transmitido facilmente em requisições HTTP.
Outra vantagem é a portabilidade. O JWT pode ser usado entre sistemas desenvolvidos em tecnologias diferentes, o que favorece interoperabilidade.
Também se destaca a escalabilidade, pois o servidor pode validar o token sem necessariamente consultar uma sessão centralizada a cada requisição.
Além disso, o JWT facilita integrações com OAuth 2.0, OpenID Connect, gateways de API e arquiteturas de microsserviços, nas quais diversos componentes precisam confiar nas mesmas informações de autenticação e autorização.
Desvantagens e cuidados no uso de JWT
Apesar de popular, o JWT não é solução mágica. Seu uso exige cuidados. Um dos principais problemas é que o conteúdo do payload pode ser lido facilmente caso o token seja interceptado ou acessado por quem não deveria. Por isso, nunca se deve incluir informações sigilosas no token sem proteção adequada.
Outro ponto crítico é a revogação. Como o token carrega sua própria validade, revogá-lo antes do prazo de expiração pode ser mais difícil do que invalidar uma sessão armazenada no servidor. Em muitos cenários, isso exige listas de bloqueio, tokens de curta duração ou uso combinado com refresh tokens.
Também há riscos associados ao armazenamento no cliente. Se o token for armazenado de forma insegura, ele pode ser roubado por ataques como XSS. Além disso, se transmitido sem HTTPS, pode ser capturado por terceiros.
Outro erro comum é confiar apenas na existência do token, sem validar corretamente itens como assinatura, expiração, emissor, audiência e, quando aplicável, o escopo de acesso.
Espero que tenham gostado!
Forte abraço e até a próxima jornada!
Professor Rogerão Araújo




