tsk-51: Refresh token endpoint #54

Merged
phoenix merged 16 commits from tsk-51 into devel 2025-08-11 22:15:18 +00:00
Showing only changes of commit cfd61e203f - Show all commits

View File

@@ -41,14 +41,49 @@ pub fn create_service_token(provided: &String, id: &uuid::Uuid) -> Result<(Strin
}
pub fn verify_token(key: &String, token: &String) -> bool {
let ver = Hs256.verifier_from_bytes(key.as_bytes()).unwrap();
let (payload, _header) = jwt::decode_with_verifier(token, &ver).unwrap();
match payload.subject() {
Some(_sub) => true,
None => false,
match get_payload(key, token) {
Ok((payload, _header)) => {
match payload.subject() {
Some(_sub) => true,
None => false,
}
}
Err(_err) => {
false
}
}
}
pub fn extract_id_from_token(key: &String, token: &String) -> Result<uuid::Uuid, std::io::Error> {
match get_payload(key, token) {
Ok((payload, _header)) => {
match payload.claim("id") {
Some(id) => {
match uuid::Uuid::parse_str(id.as_str().unwrap()) {
Ok(extracted) => {
Ok(extracted)
}
Err(err) => {
Err(std::io::Error::other(err.to_string()))
}
}
}
None => {
Err(std::io::Error::other("No claim found"))
}
}
}
Err(err) => {
Err(std::io::Error::other(err.to_string()))
}
}
}
fn get_payload(key: &String, token: &String) -> Result<(josekit::jwt::JwtPayload, josekit::jws::JwsHeader), josekit::JoseError> {
let ver = Hs256.verifier_from_bytes(key.as_bytes()).unwrap();
jwt::decode_with_verifier(token, &ver)
}
#[cfg(test)]
mod tests {
use super::*;