Struct oidc::Client

source ·
pub struct Client { /* private fields */ }
Expand description

OpenID Connect Client for a provider specified at construction.

Implementations

Constructs a client from an issuer url and client parameters via discovery

Constructs a client from a given provider, key set, and parameters. Unlike ::discover(..) this function does not perform any network operations.

Passthrough to the redirect_url stored in inth_oauth2 as a str.

Passthrough to the inth_oauth2::client’s request token.

A reference to the config document of the provider obtained via discovery

Constructs the auth_url to redirect a client to the provider. Options are… optional. Use them as needed. Keep the Options struct around for authentication, or at least the nonce and max_age parameter - we need to verify they stay the same and validate if you used them.

Given an auth_code and auth options, request the token, decode, and validate it.

Mutates a Compact::encoded Token to Compact::decoded. Errors are:

  • Decode::MissingKid if the keyset has multiple keys but the key id on the token is missing
  • Decode::MissingKey if the given key id is not in the key set
  • Decode::EmptySet if the keyset is empty
  • Jose::WrongKeyType if the alg of the key and the alg in the token header mismatch
  • Jose::WrongKeyType if the specified key alg isn’t a signature algorithm
  • Jose error if decoding fails

Validate a decoded token. If you don’t get an error, its valid! Nonce and max_age come from your auth_uri options. Errors are:

  • Jose Error if the Token isn’t decoded
  • Validation::Mismatch::Issuer if the provider issuer and token issuer mismatch
  • Validation::Mismatch::Nonce if a given nonce and the token nonce mismatch
  • Validation::Missing::Nonce if either the token or args has a nonce and the other does not
  • Validation::Missing::Audience if the token aud doesn’t contain the client id
  • Validation::Missing::AuthorizedParty if there are multiple audiences and azp is missing
  • Validation::Mismatch::AuthorizedParty if the azp is not the client_id
  • Validation::Expired::Expires if the current time is past the expiration time
  • Validation::Expired::MaxAge is the token is older than the provided max_age
  • Validation::Missing::Authtime if a max_age was given and the token has no auth time

Get a userinfo json document for a given token at the provider’s userinfo endpoint. Errors are:

  • Userinfo::NoUrl if this provider doesn’t have a userinfo endpoint
  • Error::Insecure if the userinfo url is not https
  • Error::Jose if the token is not decoded
  • Error::Http if something goes wrong getting the document
  • Error::Json if the response is not a valid Userinfo document
  • Userinfo::MismatchSubject if the returned userinfo document and tokens subject mismatch

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 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.