mod claims;
mod error;
mod token_issuer;
#[cfg(any(feature = "biome-key-management", feature = "biome-credentials",))]
use jsonwebtoken::Validation;
use serde::Serialize;
pub use claims::{Claims, ClaimsBuilder};
pub use error::{ClaimsBuildError, TokenIssuerError, TokenValidationError};
pub use token_issuer::AccessTokenIssuer;
#[cfg(any(feature = "biome-key-management", feature = "biome-credentials",))]
const DEFAULT_LEEWAY: i64 = 10;
pub trait TokenIssuer<T: Serialize> {
fn issue_token_with_claims(&self, claims: T) -> Result<String, TokenIssuerError>;
#[cfg(feature = "biome-credentials")]
fn issue_refresh_token_with_claims(&self, claims: T) -> Result<String, TokenIssuerError>;
}
#[cfg(any(feature = "biome-key-management", feature = "biome-credentials",))]
pub(crate) fn default_validation(issuer: &str) -> Validation {
let mut validation = Validation::default();
validation.leeway = DEFAULT_LEEWAY;
validation.iss = Some(issuer.to_string());
validation
}
#[cfg(feature = "biome-credentials")]
pub(crate) fn ignore_exp_validation(issuer: &str) -> Validation {
let mut validation = Validation::default();
validation.leeway = DEFAULT_LEEWAY;
validation.iss = Some(issuer.to_string());
validation.validate_exp = false;
validation
}