signer-daemon 0.2.5

Signer daemon package.
Documentation
use reqwest::RequestBuilder;
use signer_core::{SignerJWT, SignerJWTClaims, SignerJWTHeader, SignerUser};

pub trait ReqwestAuth {
  fn with_signer_auth(self, user: &SignerUser) -> Self;
  fn with_signer_auth_and_expire(self, user: &SignerUser, expire: i64) -> Self;
}

impl ReqwestAuth for RequestBuilder {
  fn with_signer_auth(self, user: &SignerUser) -> Self {
    let jwt = SignerJWT::new(
      SignerJWTHeader::default(&user),
      SignerJWTClaims::default(
        &user,
        format!("*"),
        uuid::Uuid::new_v4().to_string(),
      )
      .with_expired_duration(chrono::Duration::minutes(5)),
    )
    .encode(&user)
    .expect("encode jwt string failed");

    self.header("Authorization", format!("Bearer {}", jwt))
  }

  fn with_signer_auth_and_expire(self, user: &SignerUser, expire: i64) -> Self {
    let jwt = SignerJWT::new(
      SignerJWTHeader::default(&user),
      SignerJWTClaims::default(
        &user,
        format!("*"),
        uuid::Uuid::new_v4().to_string(),
      )
      .with_expired_duration(chrono::Duration::milliseconds(expire)),
    )
    .encode(&user)
    .expect("encode jwt string failed");

    self.header("Authorization", format!("Bearer {}", jwt))
  }
}