jwt-rust
A rust implementation of JSON Web Tokens.
Examples
Encode
use ;
use Header;
use HS256;
let claims = Claims ;
.unwrap;
Decode
use ;
use ;
use HS256;
let claims = default;
let token = .unwrap;
let Token = .unwrap; // no verify
let Token = .unwrap; // verify with algorithm and key
Validate Claims
use HashMap;
use ;
use Claims;
use ;
let claims = Claims ;
let claims = claims
.issued_now
.expired_in
.not_before;
claims.validate.unwrap;
claims.validate.unwrap;
claims.validate.unwrap;
claims.validate.unwrap;
claims.validate.unwrap;
claims.validate.unwrap;
claims.validate.unwrap;
// builtin validation works with any `Serialize` type:
let claims = from;
claims.validate.unwrap;
Custom Claims Type
use HashMap;
use ;
use jws;
use ;
use HS256;
let claims = CustomClaims ;
let token = .unwrap;
let Token = .unwrap;
// Or use a map directly
let claims = from;
let Token = .unwrap;
Custom Algorithm
use ;
use ;
;
let claims = default;
let token = .unwrap;
let Token = .unwrap;
Custom Verification
use ;
use ;
use HS256;
;
let token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzZWEifQ.L0DLtDjydcSK-c0gTyOYbmUQ_LUCZzqAGCINn2OLhFs";
let Token = .unwrap;
Custom Claims Validation
use Claims;
use ;
;
let claims = Claims ;
claims.validate.unwrap;
Algorithms
Sign and verify using crate aws-lc-rs.
- HS256 - HMAC using SHA-256
- HS384 - HMAC using SHA-384
- HS512 - HMAC using SHA-512
- RS256 - RSASSA-PKCS1-v1_5 using SHA-256
- RS384 - RSASSA-PKCS1-v1_5 using SHA-384
- RS512 - RSASSA-PKCS1-v1_5 using SHA-512
- ES256 - ECDSA using P-256 and SHA-256
- ES384 - ECDSA using P-384 and SHA-384
- ES512 - ECDSA using P-521 and SHA-512
- PS256 - RSASSA-PSS using SHA-256 and MGF1 with SHA-256
- PS384 - RSASSA-PSS using SHA-384 and MGF1 with SHA-384
- PS512 - RSASSA-PSS using SHA-512 and MGF1 with SHA-512
Migrate from 0.2
| <= 0.2 | >= 0.4 |
|---|---|
Token::sign |
jws::encode |
Token::decode |
jws::decode with NoVerify |
Token::verify_with_key |
jws::decode with VerifyWith |
Token::verify_with_key_resolver |
jws::decode with custom verify |
Token::validate_claims |
Validate::validate |
More
RFC 7519 JSON Web Token (JWT)
RFC 7515 JSON Web Signature (JWS)
RFC 7518 JSON Web Algorithms (JWA)