O que é JWT?
JWT, ou JSON Web Token, é um formato compacto de token assinado em JSON, padronizado pela RFC 7519, usado para transmitir identidade e permissões entre sistemas.
O que significa JWT?
JWT, ou JSON Web Token, é um padrão (RFC 7519) que define um token compacto, autocontido e seguro para transmitir informação entre partes. É a base de OpenID Connect, OAuth 2.0 (em token responses), APIs REST modernas e arquiteturas de microsserviços.
Como JWT funciona?
Um JWT tem três partes separadas por ponto: header (algoritmo de assinatura), payload (claims como sub, iss, exp, roles) e signature (assinatura criptográfica do header + payload). Tudo codificado em base64url. O servidor que recebe valida a assinatura com a chave pública do emissor e confia no payload sem precisar consultar banco.
Por que JWT é importante?
JWT viabilizou a autenticação sem estado (stateless) em arquiteturas distribuídas. Em vez de cada microsserviço consultar a sessão central, basta validar a assinatura. Isso reduz latência, simplifica escalabilidade e habilita federação cruzada entre domínios.
Estrutura de um JWT
- Header: tipo do token e algoritmo (geralmente RS256 para chave pública, HS256 para chave compartilhada).
- Payload: claims registradas (iss, sub, aud, exp, iat, nbf, jti) e claims customizadas (roles, scopes, tenant_id).
- Signature: assinatura criptográfica que prova autenticidade e integridade.
Exemplo prático de JWT
Em uma SPA React conectada a um backend Node, o usuário faz login no IdP (Auth0). O IdP retorna um JWT (id_token + access_token). A SPA armazena em memória e envia em cada requisição como Bearer token. O backend valida a assinatura uma vez por chamada e extrai userId e roles do payload — sem nova consulta ao IdP.
JWT vs sessão tradicional
Sessões tradicionais armazenam estado no servidor; JWTs carregam estado no cliente. JWT é melhor para microsserviços e APIs públicas; sessão é melhor quando você precisa revogar imediatamente um login (JWTs vivem até o exp). Muitas empresas usam híbrido: JWT curto + refresh token rotativo.
Riscos e cuidados com JWT
Erros comuns: (1) aceitar header alg:none e pular validação de assinatura; (2) usar chaves HMAC fracas reusadas em vários ambientes; (3) deixar JWTs em localStorage (XSS rouba); (4) tempo de vida muito longo sem refresh; (5) não validar iss e aud, permitindo token de outro tenant. Sempre validar todas as claims e usar libraries auditadas.

