tsk-71: Add token expiration checks #78

Merged
phoenix merged 9 commits from tsk-71 into next-v0.8 2025-10-19 02:18:29 +00:00
5 changed files with 23 additions and 37 deletions

View File

@@ -2,11 +2,9 @@ name: Release Tagging
on: on:
push: push:
branches:
- next-v0.8
pull_request:
branches: branches:
- main - main
- next-v0.8
jobs: jobs:
release: release:

2
Cargo.lock generated
View File

@@ -149,7 +149,7 @@ checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
[[package]] [[package]]
name = "icarus_models" name = "icarus_models"
version = "0.7.2" version = "0.7.3"
dependencies = [ dependencies = [
"josekit", "josekit",
"rand", "rand",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "icarus_models" name = "icarus_models"
version = "0.7.2" version = "0.7.3"
edition = "2024" edition = "2024"
rust-version = "1.90" rust-version = "1.90"
description = "models used for the icarus project" description = "models used for the icarus project"

View File

@@ -2,7 +2,7 @@ use std::default::Default;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize, utoipa::ToSchema)] #[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)]
pub struct LoginResult { pub struct LoginResult {
pub id: uuid::Uuid, pub id: uuid::Uuid,
pub username: String, pub username: String,
@@ -12,20 +12,14 @@ pub struct LoginResult {
pub expiration: i64, pub expiration: i64,
} }
impl Default for LoginResult {
fn default() -> Self {
LoginResult {
id: uuid::Uuid::nil(),
username: String::new(),
token: String::new(),
token_type: String::new(),
expiration: -1,
}
}
}
impl LoginResult { impl LoginResult {
pub fn _to_json(&self) -> Result<String, serde_json::Error> { pub fn to_json(&self) -> Result<String, serde_json::Error> {
serde_json::to_string_pretty(&self) serde_json::to_string_pretty(&self)
} }
pub fn token_expired(&self) -> bool {
let current_time = time::OffsetDateTime::now_utc();
let expired = time::OffsetDateTime::from_unix_timestamp(self.expiration).unwrap();
current_time > expired
}
} }

View File

@@ -2,7 +2,7 @@ use std::default::Default;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize)] #[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct Token { pub struct Token {
pub scope: String, pub scope: String,
pub expiration: i64, pub expiration: i64,
@@ -27,23 +27,16 @@ pub struct AccessToken {
pub message: String, pub message: String,
} }
impl Default for Token {
fn default() -> Self {
Token {
scope: String::new(),
expiration: -1,
audience: String::new(),
issuer: String::new(),
issued: -1,
}
}
}
impl AccessToken { impl AccessToken {
/// Get the token fit for Bearer authentication
pub fn bearer_token(&self) -> String { pub fn bearer_token(&self) -> String {
let mut token: String = String::from("Bearer "); format!("Bearer {}", self.token)
token += &self.token.clone(); }
token
pub fn token_expired(&self) -> bool {
let current_time = time::OffsetDateTime::now_utc();
let expired = time::OffsetDateTime::from_unix_timestamp(self.expiration).unwrap();
current_time > expired
} }
} }
@@ -52,9 +45,10 @@ impl Token {
serde_json::to_string_pretty(&self) serde_json::to_string_pretty(&self)
} }
// TODO: Implement
pub fn token_expired(&self) -> bool { pub fn token_expired(&self) -> bool {
false let current_time = time::OffsetDateTime::now_utc();
let expired = time::OffsetDateTime::from_unix_timestamp(self.expiration).unwrap();
current_time > expired
} }
pub fn contains_scope(&self, des_scope: &String) -> bool { pub fn contains_scope(&self, des_scope: &String) -> bool {