JWT-Authentifizierung
JWT (JSON Web Token) ist ein offener Standard (RFC 7519) zur sicheren Übertragung von Informationen zwischen Parteien. Es handelt sich um eine kompakte, URL-sichere Methode zur Darstellung von Ansprüchen im JSON-Objektformat, die häufig für Authentifizierung und Informationsaustausch verwendet wird.
Ein JWT besteht aus drei Teilen:
- Header – Gibt den Tokentyp und den verwendeten Signaturalgorithmus an
- Payload – Enthält Ansprüche wie Benutzer-ID, Rollen, Ablaufzeit usw.
- Signatur – Dient zur Überprüfung, ob die Nachricht während der Übertragung verändert wurde
Typische Verwendung von JWT im Authentifizierungsablauf:
- Nach der Benutzeranmeldung generiert der Server ein JWT-Token
- Das Token wird an den Client zurückgegeben und gespeichert (üblicherweise in localStorage oder Cookies)
- Bei nachfolgenden Anfragen fügt der Client dieses Token in den Authorization-Header ein
- Der Server validiert die Authentizität des Tokens und gewährt Zugriff
Bietet Middleware für JWT-Authentifizierung.
Auswahl eines Kryptografie-Providers
Salvo 0.95 bietet zwei alternative JWT-Features:
jwt-authverwendet den AWS-LC-Provider.jwt-auth-ringverwendet den RustCrypto-Provider.
In normalen Builds sollte nur eines davon aktiviert werden. Das separate
ring-Feature wählt ring für Salvos rustls-Integration aus und aktiviert keine
JWT-Authentifizierung. Das folgende Beispiel verwendet jwt-auth. Für
RustCrypto verwenden Sie stattdessen:
Wenn die Cargo-Feature-Zusammenführung beide JWT-Provider aktiviert, rufen Sie
salvo::jwt_auth::install_crypto_provider() ganz am Anfang von main auf,
bevor Sie jsonwebtoken direkt verwenden oder die JWT-Middleware einrichten.
Das folgende Beispiel tut dies, damit die Provider-Auswahl deterministisch ist.
Beispielcode