mod claims;
mod error;
mod token_issuer;
#[cfg(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(feature = "biome-credentials")]
const DEFAULT_LEEWAY: u64 = 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(feature = "biome-credentials")]
pub(crate) fn default_validation(issuer: &str) -> Validation {
Validation {
leeway: DEFAULT_LEEWAY,
iss: Some(issuer.to_string()),
..Default::default()
}
}
#[cfg(feature = "biome-credentials")]
pub(crate) fn ignore_exp_validation(issuer: &str) -> Validation {
Validation {
leeway: DEFAULT_LEEWAY,
iss: Some(issuer.to_string()),
validate_exp: false,
..Default::default()
}
}