pub struct Validation {
    pub leeway: u64,
    pub validate_exp: bool,
    pub validate_nbf: bool,
    pub aud: Option<HashSet<String>>,
    pub iss: Option<String>,
    pub sub: Option<String>,
    pub algorithms: Vec<Algorithm>,
}
Expand description

Contains the various validations that are applied after decoding a JWT.

All time validation happen on UTC timestamps as seconds.

use jsonwebtoken::Validation;

// Default value
let validation = Validation::default();

// Changing one parameter
let mut validation = Validation {leeway: 60, ..Default::default()};

// Setting audience
let mut validation = Validation::default();
validation.set_audience(&["Me"]); // a single string
validation.set_audience(&["Me", "You"]); // array of strings

Fields

leeway: u64

Add some leeway (in seconds) to the exp, iat and nbf validation to account for clock skew.

Defaults to 0.

validate_exp: bool

Whether to validate the exp field.

It will return an error if the time in the exp field is past.

Defaults to true.

validate_nbf: bool

Whether to validate the nbf field.

It will return an error if the current timestamp is before the time in the nbf field.

Defaults to false.

aud: Option<HashSet<String>>

If it contains a value, the validation will check that the aud field is a member of the audience provided and will error otherwise.

Defaults to None.

iss: Option<String>

If it contains a value, the validation will check that the iss field is the same as the one provided and will error otherwise.

Defaults to None.

sub: Option<String>

If it contains a value, the validation will check that the sub field is the same as the one provided and will error otherwise.

Defaults to None.

algorithms: Vec<Algorithm>

If it contains a value, the validation will check that the alg of the header is contained in the ones provided and will error otherwise.

Defaults to vec![Algorithm::HS256].

Implementations

Create a default validation setup allowing the given alg

aud is a collection of one or more acceptable audience members

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.