Refactored function
All checks were successful
Rust Build / Check (pull_request) Successful in 25s
Rust Build / Test Suite (pull_request) Successful in 33s
Rust Build / Rustfmt (pull_request) Successful in 23s
Rust Build / Clippy (pull_request) Successful in 34s
Rust Build / build (pull_request) Successful in 27s

This commit is contained in:
2025-08-01 15:45:08 -04:00
parent d3251f935e
commit a38677aa28

View File

@@ -80,22 +80,36 @@ mod util {
} }
} }
#[derive(Debug)]
pub struct TokenResource {
pub message: String,
pub issuer: String,
pub audiences: Vec<String>,
}
pub fn create_token( pub fn create_token(
key: &String, key: &String,
message: &String, // message: &String,
issuer: &String, // issuer: &String,
audience: &String, // audience: &String,
token_resource: &TokenResource,
duration: time::Duration,
) -> Result<(String, i64), josekit::JoseError> { ) -> Result<(String, i64), josekit::JoseError> {
let mut header = josekit::jws::JwsHeader::new(); let mut header = josekit::jws::JwsHeader::new();
header.set_token_type("JWT"); header.set_token_type("JWT");
let mut payload = josekit::jwt::JwtPayload::new(); let mut payload = josekit::jwt::JwtPayload::new();
let message = &token_resource.message;
let issuer = &token_resource.issuer;
let audiences: &Vec<String> = &token_resource.audiences;
payload.set_subject(message); payload.set_subject(message);
payload.set_issuer(issuer); payload.set_issuer(issuer);
payload.set_audience(vec![audience]); // payload.set_audience(vec![audience]);
payload.set_audience(audiences.clone());
match get_issued() { match get_issued() {
Ok(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_issued_at(&util::time_to_std_time(&issued).unwrap());
payload.set_expires_at(&util::time_to_std_time(&expire).unwrap()); payload.set_expires_at(&util::time_to_std_time(&expire).unwrap());