Files
simodels/src/token.rs
T
2025-03-14 01:16:58 +00:00

65 lines
1.4 KiB
Rust

use std::default::Default;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Token {
pub scope: String,
pub expiration: i32,
pub audience: String,
pub issuer: String,
pub issued: i32,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct AccessToken {
#[serde(alias = "user_id")]
pub user_id: i32,
#[serde(alias = "username")]
pub username: String,
#[serde(alias = "token")]
pub token: String,
#[serde(alias = "token_type")]
pub token_type: String,
#[serde(alias = "expiration")]
pub expiration: i32,
#[serde(alias = "message")]
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 {
pub fn bearer_token(&self) -> String {
let mut token: String = String::from("Bearer ");
token += &self.token.clone();
return token;
}
}
impl Token {
pub fn _to_json(&self) -> Result<String, serde_json::Error> {
return serde_json::to_string_pretty(&self);
}
// TODO: Implement
pub fn token_expired(&self) -> bool {
return false;
}
// TODO: Implement
pub fn contains_scope(&self, des_scope: String) -> bool {
return false;
}
}