2024-04-20 11:17:44 +00:00
|
|
|
# Basic JWT
|
|
|
|
|
|
|
|
This crate provide basic functions to:
|
|
|
|
* Sign JWT
|
|
|
|
* Parse and validate JWT
|
|
|
|
|
|
|
|
|
|
|
|
Basic usage:
|
|
|
|
|
|
|
|
```rust
|
|
|
|
let claims = ...; // note : claims must be serializable
|
|
|
|
|
2024-04-20 11:48:00 +00:00
|
|
|
// Generate a key pair. Private and public key are both serializable
|
|
|
|
let priv_key = JWTPrivateKey::generate_ec384_signing_key().unwrap();
|
|
|
|
let pub_key = priv_key.to_public_key().unwrap();
|
2024-04-20 11:17:44 +00:00
|
|
|
|
|
|
|
// Create a JWT for the given claims (note: standard claims: sub, iss, ...) are not
|
|
|
|
// automatically added if they are missing
|
2024-04-20 11:48:00 +00:00
|
|
|
let jwt = priv_key.sign_jwt(&claims).expect("Failed to sign JWT!");
|
2024-04-20 11:17:44 +00:00
|
|
|
|
|
|
|
// Validate signed JWT
|
2024-04-20 11:48:00 +00:00
|
|
|
let claims_out = pub_key
|
|
|
|
.validate_jwt::<Claims>(&jwt)
|
|
|
|
.expect("Failed to validate JWT!");
|
2024-04-20 11:17:44 +00:00
|
|
|
```
|