Autenticazione JWT
JWT (JSON Web Token) è uno standard aperto (RFC 7519) per trasmettere informazioni in modo sicuro tra le parti. È un metodo compatto e sicuro per URL di rappresentare le rivendicazioni in formato oggetto JSON, comunemente utilizzato per l'autenticazione e lo scambio di informazioni.
Un JWT è composto da tre parti:
- Intestazione - Specifica il tipo di token e l'algoritmo di firma utilizzato
- Payload - Contiene le rivendicazioni, come ID utente, ruoli, tempo di scadenza, ecc.
- Firma - Utilizzata per verificare che il messaggio non sia stato alterato durante la trasmissione
Utilizzo tipico di JWT nel flusso di autenticazione:
- Dopo l'accesso dell'utente, il server genera un token JWT
- Il token viene restituito al client e memorizzato (tipicamente in localStorage o cookie)
- Nelle richieste successive, il client include questo token nell'intestazione Authorization
- Il server convalida l'autenticità del token e concede l'accesso
Fornisce middleware per l'autenticazione JWT Auth.
Scegliere un provider crittografico
Salvo 0.95 offre due feature JWT alternative:
jwt-authutilizza il provider AWS-LC.jwt-auth-ringutilizza il provider RustCrypto.
Nelle build normali abilitarne solo una. La feature separata ring seleziona
ring per l'integrazione rustls di Salvo e non abilita l'autenticazione JWT.
L'esempio seguente usa jwt-auth. Per utilizzare invece RustCrypto:
Se l'unificazione delle feature di Cargo abilita entrambi i provider JWT,
chiamare salvo::jwt_auth::install_crypto_provider() all'inizio di main,
prima di qualsiasi operazione diretta di jsonwebtoken o della configurazione
del middleware JWT. L'esempio seguente lo fa per rendere deterministica la
selezione del provider.
Codice di Esempio