jwtk 0.5.0

JWT signing (JWS) and verification, with first class JWK and JWK Set (JWKS) support.
Documentation
#[cfg(feature = "remote-jwks")]
#[tokio::main]
async fn main() -> jwtk::Result<()> {
    use jwtk::jwk::RemoteJwksVerifier;
    use serde::Deserialize;
    use serde_json::{Map, Value};

    #[derive(Deserialize)]
    struct Token {
        token: String,
    }

    let v: Token = reqwest::get("http://127.0.0.1:3000/token")
        .await?
        .json()
        .await?;

    let j = RemoteJwksVerifier::new("http://127.0.0.1:3000/jwks".into());
    let c = j.verify::<Map<String, Value>>(&v.token).await?;

    println!("headers:\n{}", serde_json::to_string(c.header())?);
    println!("claims:\n{}", serde_json::to_string(c.claims())?);

    Ok(())
}

#[cfg(not(feature = "remote-jwks"))]
fn main() {}