diff --git a/src/token.rs b/src/token.rs index 68f355a..205c524 100644 --- a/src/token.rs +++ b/src/token.rs @@ -80,22 +80,36 @@ mod util { } } +#[derive(Debug)] +pub struct TokenResource { + pub message: String, + pub issuer: String, + pub audiences: Vec, +} + pub fn create_token( key: &String, - message: &String, - issuer: &String, - audience: &String, + // message: &String, + // issuer: &String, + // audience: &String, + token_resource: &TokenResource, + duration: time::Duration, ) -> Result<(String, i64), josekit::JoseError> { let mut header = josekit::jws::JwsHeader::new(); header.set_token_type("JWT"); let mut payload = josekit::jwt::JwtPayload::new(); + let message = &token_resource.message; + let issuer = &token_resource.issuer; + let audiences: &Vec = &token_resource.audiences; payload.set_subject(message); payload.set_issuer(issuer); - payload.set_audience(vec![audience]); + // payload.set_audience(vec![audience]); + payload.set_audience(audiences.clone()); match get_issued() { Ok(issued) => { - let expire = get_expiration(&issued).unwrap(); + // let expire = get_expiration(&issued).unwrap(); + let expire = issued + duration; payload.set_issued_at(&util::time_to_std_time(&issued).unwrap()); payload.set_expires_at(&util::time_to_std_time(&expire).unwrap());