Skip to main content

easy_auth_sdk/
claims.rs

1use serde::Deserialize;
2
3#[derive(Debug, Clone, Deserialize)]
4pub struct Claims {
5    pub sub: String,
6    #[serde(default)]
7    pub domain_roles: Vec<String>,
8    #[serde(default)]
9    pub exp: Option<u64>,
10    #[serde(default)]
11    pub iat: Option<u64>,
12}
13
14impl Claims {
15    /// Returns true if the subject matches the expected value.
16    pub fn is_subject(&self, expected_sub: &str) -> bool {
17        self.sub == expected_sub
18    }
19
20    /// Returns true if any of the allowed roles is present in domain_roles.
21    pub fn allowed_domain_roles(&self, allowed_roles: &[&str]) -> bool {
22        allowed_roles
23            .iter()
24            .any(|role| self.domain_roles.contains(&role.to_string()))
25    }
26}