GrantType

Enum GrantType 

Source
#[non_exhaustive]
pub enum GrantType { Password, AuthorizationCode, ClientCredentials, RefreshToken, Other(i32), }
Expand description

Type of the resource owner’s authorization used by the client to obtain an access token. For more information, see section 1.3 of RFC 6749.

Grant types are used in the AccessTokenRequest.

§Example

For example, if you wish to indicate in your request that the resource owner’s authorization works via client credentials:

let request = AccessTokenRequest::builder()
    .client_id("test_client")
    .grant_type(GrantType::ClientCredentials)
    .build()?;

It’s also possible to use your own value for a custom grant type, as defined in section 8.5 of RFC 9200:

let request = AccessTokenRequest::builder()
    .client_id("test_client")
    // values below -65536 marked for private use.
    .grant_type(GrantType::Other(-99999))
    .build()?;

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Password

Grant type intended for clients capable of obtaining the resource owner’s credentials.

Note that the authorization server should take special care when enabling this grant type and only allow it when other flows are not viable.

See section 4.3 of RFC 6749 for details.

§

AuthorizationCode

Redirection-based flow optimized for confidential clients.

See section 4.1 of RFC 6749 for details.

§

ClientCredentials

Used when the client authenticates with the authorization server in an unspecified way.

Must only be used for confidential clients.

See section 4.4 of RFC 6749 for details.

§

RefreshToken

Used for refreshing an existing access token.

When using this, it’s necessary that refresh_token is specified in the AccessTokenResponse.

See section 6 of RFC 6749 for details.

§

Other(i32)

Another authorization grant not listed here.

See section 8.5 of RFC 9200 for corresponding IANA registries.

Trait Implementations§

Source§

impl Clone for GrantType

Source§

fn clone(&self) -> GrantType

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for GrantType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<GrantType> for i32

Source§

fn from(grant: GrantType) -> Self

Converts to this type from the input type.
Source§

impl From<i32> for GrantType

Source§

fn from(value: i32) -> Self

Converts to this type from the input type.
Source§

impl Hash for GrantType

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for GrantType

Source§

fn eq(&self, other: &GrantType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for GrantType

Source§

impl Eq for GrantType

Source§

impl StructuralPartialEq for GrantType

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.