Autenticação JWT
JWT (JSON Web Token) é um padrão aberto (RFC 7519) para transmissão segura de informações entre partes. É um método compacto e seguro para URLs de representar declarações em formato de objeto JSON, comumente usado para autenticação e troca de informações.
Um JWT consiste em três partes:
- Cabeçalho - Especifica o tipo de token e o algoritmo de assinatura utilizado
- Carga útil - Contém declarações, como ID do usuário, funções, tempo de expiração, etc.
- Assinatura - Usada para verificar se a mensagem não foi alterada durante a transmissão
Uso típico do JWT no fluxo de autenticação:
- Após o login do usuário, o servidor gera um token JWT
- O token é retornado ao cliente e armazenado (normalmente em localStorage ou cookies)
- Nas solicitações subsequentes, o cliente inclui este token no cabeçalho Authorization
- O servidor valida a autenticidade do token e concede acesso
Fornece middleware para autenticação JWT Auth.
Escolher um provedor criptográfico
O Salvo 0.95 oferece duas features JWT alternativas:
jwt-authusa o provedor AWS-LC.jwt-auth-ringusa o provedor RustCrypto.
Em builds normais, habilite apenas uma delas. A feature ring separada seleciona
ring para a integração rustls do Salvo e não habilita a autenticação JWT. O
exemplo abaixo usa jwt-auth. Para usar RustCrypto:
Se a unificação de features do Cargo habilitar ambos os provedores JWT, chame
salvo::jwt_auth::install_crypto_provider() no início de main, antes de
qualquer operação direta de jsonwebtoken ou da configuração do middleware
JWT. O exemplo abaixo faz isso para manter a seleção determinística.
Código de Exemplo