Create token refactor #53

Merged
phoenix merged 4 commits from create_token_refactor into devel 2025-08-01 20:04:33 +00:00
Showing only changes of commit a38677aa28 - Show all commits

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(
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<String> = &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());