Added id to the token

This commit is contained in:
2025-08-06 18:32:07 -04:00
parent 1e95822b5a
commit cd1c0dd7b6

View File

@@ -80,6 +80,7 @@ pub struct TokenResource {
pub message: String, pub message: String,
pub issuer: String, pub issuer: String,
pub audiences: Vec<String>, pub audiences: Vec<String>,
pub id: uuid::Uuid,
} }
pub const TOKEN_TYPE: &str = "JWT"; pub const TOKEN_TYPE: &str = "JWT";
@@ -99,6 +100,15 @@ pub fn create_token(
payload.set_subject(message); payload.set_subject(message);
payload.set_issuer(issuer); payload.set_issuer(issuer);
payload.set_audience(audiences.clone()); payload.set_audience(audiences.clone());
if token_resource.id.is_nil() {
match payload.set_claim("id", Some(serde_json::json!(token_resource.id))) {
Ok(_) => {
}
Err(err) => {
return Err(err);
}
}
}
match get_issued() { match get_issued() {
Ok(issued) => { Ok(issued) => {
let expire = issued + duration; let expire = issued + duration;
@@ -145,6 +155,7 @@ mod tests {
issuer: String::from("icarus_auth_test"), issuer: String::from("icarus_auth_test"),
message: String::from("Authorization"), message: String::from("Authorization"),
audiences: vec![String::from("icarus_test")], audiences: vec![String::from("icarus_test")],
id: uuid::Uuid::nil(),
}; };
let token_expiration_duration = time::Duration::hours(2); let token_expiration_duration = time::Duration::hours(2);