use {
core::time::Duration,
mosaik::tickets::{Expiration, Hs256, Jwt, JwtTicketBuilder},
};
pub const DEFAULT_ISSUER: &str = "mosaik.test.jwt.issuer";
pub const DEFAULT_SECRET: &str = "mosaik.test.jwt.secret";
pub fn jwt_secret(secret: &str) -> [u8; 32] {
*blake3::hash(secret.as_bytes()).as_bytes()
}
pub fn jwt_builder(issuer: &str, secret: &str) -> JwtTicketBuilder {
JwtTicketBuilder::new(Hs256::new(jwt_secret(secret)))
.issuer(issuer)
.expires_at(Expiration::in_1h())
}
pub fn jwt_validator(issuer: &str, secret: &str) -> Jwt {
Jwt::with_key(Hs256::new(jwt_secret(secret))).allow_issuer(issuer)
}