A rust implementation of JSON Web Tokens.
```rust use jwts::Claims; use jwts::jws::{Algorithm, Key, Token};
let mut claims = Claims::new(); claims.iss = Some("sea".to_owned());
let mut token = Token::with_payload(claims);
// custom the header like: // token.header.cty = Some("application/example".to_owned());
let key = Key::new(b"secret", Algorithm::HS256); let token = token.sign(&key).unwrapordefault();
asserteq!(token, "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzZWEifQ.L0DLtDjydcSK-c0gTyOYbmUQLUCZzqAGCINn2OLhFs"); ```
```rust use jwts::{Claims, jws}; use jwts::jws::{Algorithm, Config, Key, SignatureValidation, Token};
let key = Key::new(b"secret", Algorithm::HS256); let signature_validation = SignatureValidation::Key(key);
// use key resolver like: // let signature_validation = SignatureValidation::KeyResolver(|header, payload| { // // return a Key here // });
let config = Config { signaturevalidation, iatvalidation: true, nbfvalidation: true, expvalidation: true, expectediss: Some("sea".toowned()), expectedsub: None, expectedaud: None, expected_jti: None, };
let token = "a jwt token";
let token: Option
```rust use jwts::{Claims, jws}; use jwts::jws::{Algorithm, Key, Token};
extern crate serde_derive;
struct CustomClaims { iss: String, }
let claims = CustomClaims { iss: "sea".to_owned(), };
let mut token = Token::withpayload(claims);
let key = Key::new(b"secret", Algorithm::HS256);
let token = token.sign(&key).unwrapordefault();
let token: Token
Sign and verify use crate ring.
RFC 7519 JSON Web Token (JWT)
RFC 7515 JSON Web Signature (JWS)
RFC 7518 JSON Web Algorithms (JWA)