this repo has no description
1use chrono::{DateTime, Utc}; 2use serde::{Deserialize, Serialize}; 3use std::fmt; 4 5#[derive(Debug, Clone, Serialize, Deserialize)] 6pub struct ActClaim { 7 pub sub: String, 8} 9 10#[derive(Debug, Serialize, Deserialize)] 11pub struct Claims { 12 pub iss: String, 13 pub sub: String, 14 pub aud: String, 15 pub exp: usize, 16 pub iat: usize, 17 #[serde(skip_serializing_if = "Option::is_none")] 18 pub scope: Option<String>, 19 #[serde(skip_serializing_if = "Option::is_none")] 20 pub lxm: Option<String>, 21 pub jti: String, 22 #[serde(skip_serializing_if = "Option::is_none")] 23 pub act: Option<ActClaim>, 24} 25 26#[derive(Debug, Serialize, Deserialize)] 27pub struct Header { 28 pub alg: String, 29 pub typ: String, 30} 31 32#[derive(Debug, Serialize, Deserialize)] 33pub struct UnsafeClaims { 34 pub iss: String, 35 pub sub: Option<String>, 36} 37 38pub struct TokenData<T> { 39 pub claims: T, 40} 41 42pub struct TokenWithMetadata { 43 pub token: String, 44 pub jti: String, 45 pub expires_at: DateTime<Utc>, 46} 47 48#[derive(Debug, Clone, Copy, PartialEq, Eq)] 49pub enum TokenVerifyError { 50 Expired, 51 Invalid, 52} 53 54impl fmt::Display for TokenVerifyError { 55 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 56 match self { 57 Self::Expired => write!(f, "Token expired"), 58 Self::Invalid => write!(f, "Token invalid"), 59 } 60 } 61} 62 63impl std::error::Error for TokenVerifyError {}