use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Hs256Config {
pub secret_env: String,
#[serde(default)]
pub issuer: Option<String>,
#[serde(default)]
pub audience: Option<String>,
}
impl Hs256Config {
pub fn load_secret(&self) -> Result<String, String> {
let value = std::env::var(&self.secret_env).map_err(|_| {
format!("auth_hs256: environment variable `{}` is not set", self.secret_env)
})?;
if value.is_empty() {
return Err(format!("auth_hs256: environment variable `{}` is empty", self.secret_env));
}
Ok(value)
}
}