pub struct Claims {
pub iss: Option<String>,
pub sub: Option<String>,
pub aud: Option<String>,
pub exp: Option<OffsetDateTime>,
pub nbf: Option<OffsetDateTime>,
pub iat: Option<OffsetDateTime>,
pub jti: Option<String>,
pub kid: Option<String>,
pub custom: HashMap<String, Value>,
}Expand description
Claims contained within a token
Fields§
§iss: Option<String>Token issuer
sub: Option<String>Token subject
aud: Option<String>Token audience
exp: Option<OffsetDateTime>Token expiration time
nbf: Option<OffsetDateTime>Token not-before time
iat: Option<OffsetDateTime>Token issued-at time
jti: Option<String>Token identifier (jti)
kid: Option<String>Key identifier
custom: HashMap<String, Value>Custom claims (Conflux-specific)
Implementations§
Source§impl Claims
impl Claims
Sourcepub fn set_issuer(
&mut self,
issuer: impl Into<String>,
) -> Result<(), PqPasetoError>
pub fn set_issuer( &mut self, issuer: impl Into<String>, ) -> Result<(), PqPasetoError>
Set the issuer claim
Sourcepub fn set_subject(
&mut self,
subject: impl Into<String>,
) -> Result<(), PqPasetoError>
pub fn set_subject( &mut self, subject: impl Into<String>, ) -> Result<(), PqPasetoError>
Set the subject claim
Sourcepub fn set_audience(
&mut self,
audience: impl Into<String>,
) -> Result<(), PqPasetoError>
pub fn set_audience( &mut self, audience: impl Into<String>, ) -> Result<(), PqPasetoError>
Set the audience claim
Sourcepub fn set_expiration(
&mut self,
exp: OffsetDateTime,
) -> Result<(), PqPasetoError>
pub fn set_expiration( &mut self, exp: OffsetDateTime, ) -> Result<(), PqPasetoError>
Set the expiration time
Sourcepub fn set_not_before(
&mut self,
nbf: OffsetDateTime,
) -> Result<(), PqPasetoError>
pub fn set_not_before( &mut self, nbf: OffsetDateTime, ) -> Result<(), PqPasetoError>
Set the not-before time
Sourcepub fn set_issued_at(
&mut self,
iat: OffsetDateTime,
) -> Result<(), PqPasetoError>
pub fn set_issued_at( &mut self, iat: OffsetDateTime, ) -> Result<(), PqPasetoError>
Set the issued-at time
Sourcepub fn set_jti(&mut self, jti: impl Into<String>) -> Result<(), PqPasetoError>
pub fn set_jti(&mut self, jti: impl Into<String>) -> Result<(), PqPasetoError>
Set the token identifier
Sourcepub fn set_kid(&mut self, kid: impl Into<String>) -> Result<(), PqPasetoError>
pub fn set_kid(&mut self, kid: impl Into<String>) -> Result<(), PqPasetoError>
Set the key identifier
Sourcepub fn add_custom(
&mut self,
key: impl Into<String>,
value: impl Serialize,
) -> Result<(), PqPasetoError>
pub fn add_custom( &mut self, key: impl Into<String>, value: impl Serialize, ) -> Result<(), PqPasetoError>
Add a custom claim
Sourcepub fn get_custom(&self, key: &str) -> Option<&Value>
pub fn get_custom(&self, key: &str) -> Option<&Value>
Get a custom claim
Sourcepub fn validate_time(
&self,
now: OffsetDateTime,
clock_skew_tolerance: Duration,
) -> Result<(), PqPasetoError>
pub fn validate_time( &self, now: OffsetDateTime, clock_skew_tolerance: Duration, ) -> Result<(), PqPasetoError>
Validate time-based claims
pub fn issuer(&self) -> Option<&str>
pub fn subject(&self) -> Option<&str>
pub fn audience(&self) -> Option<&str>
pub fn expiration(&self) -> Option<OffsetDateTime>
pub fn not_before(&self) -> Option<OffsetDateTime>
pub fn issued_at(&self) -> Option<OffsetDateTime>
pub fn jti(&self) -> Option<&str>
pub fn kid(&self) -> Option<&str>
Sourcepub fn to_json_value(&self) -> Value
pub fn to_json_value(&self) -> Value
Convert claims to a JSON value
This method provides easy integration with logging, databases, and tracing systems.
§Example
use paseto_pq::Claims;
use serde_json::Value;
let mut claims = Claims::new();
claims.set_subject("user123").unwrap();
claims.add_custom("role", "admin").unwrap();
let json_value: Value = claims.to_json_value();
println!("Claims as JSON: {}", json_value);Sourcepub fn to_json_string(&self) -> Result<String, Error>
pub fn to_json_string(&self) -> Result<String, Error>
Convert claims to a JSON string
This method provides easy integration with logging, databases, and tracing systems.
§Example
use paseto_pq::Claims;
let mut claims = Claims::new();
claims.set_subject("user123").unwrap();
claims.add_custom("role", "admin").unwrap();
let json_string = claims.to_json_string().unwrap();
println!("User claims: {}", json_string);Sourcepub fn to_json_string_pretty(&self) -> Result<String, Error>
pub fn to_json_string_pretty(&self) -> Result<String, Error>
Convert claims to a pretty-printed JSON string
Useful for debugging and development environments.
§Example
use paseto_pq::Claims;
let mut claims = Claims::new();
claims.set_subject("user123").unwrap();
claims.add_custom("role", "admin").unwrap();
let pretty_json = claims.to_json_string_pretty().unwrap();
println!("Claims:\n{}", pretty_json);Trait Implementations§
Source§impl<'de> Deserialize<'de> for Claims
impl<'de> Deserialize<'de> for Claims
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<Claims> for Value
Convert Claims to serde_json::Value for easy integration with logging, databases, and tracing
impl From<Claims> for Value
Convert Claims to serde_json::Value for easy integration with logging, databases, and tracing
§Example
use paseto_pq::Claims;
use serde_json::Value;
let mut claims = Claims::new();
claims.set_subject("user123").unwrap();
claims.add_custom("tenant_id", "org_abc123").unwrap();
// Direct conversion
let json_value: Value = claims.into();
// Use in logging
println!("User authenticated with claims: {}", json_value);
// Use in database operations
// db.insert_audit_log(json_value).await?;