Enum glimesh::Auth

source ·
pub enum Auth {
    ClientId(String),
    AccessToken(String),
    RefreshableAccessToken(RefreshableAccessToken),
    ClientCredentials(ClientCredentials),
}
Expand description

Authentication method. The Glimesh API requires an authentication method to be used. The most basic is the ClientId method, which gives you read only access to the api.

Variants§

§

ClientId(String)

Use Client-ID authentication. When using this method, you can only ‘read’ from the API.

§

AccessToken(String)

Use Bearer authentication. The supplied access token is assumed to be valid. If you would like the client to handle token refreshing, use Auth::RefreshableAccessToken instead.

§

RefreshableAccessToken(RefreshableAccessToken)

Use Bearer authentication. This will use the provided refresh token to refresh the access token when/if it expires.

§

ClientCredentials(ClientCredentials)

Use Bearer authentication via the client_credentials flow.

This allows you to log in to the api as the account that created the developer application.

Implementations§

source§

impl Auth

source

pub fn client_id(client_id: impl Into<String>) -> Self

Use Client-ID authentication. When using this method, you can only ‘read’ from the API.

source

pub fn access_token(access_token: impl Into<String>) -> Self

Use Bearer authentication. The supplied access token is assumed to be valid. If you would like the client to handle token refreshing, use Auth::RefreshableAccessToken instead.

source

pub fn refreshable_access_token( client_id: impl Into<String>, client_secret: impl Into<String>, redirect_uri: impl Into<String>, access_token: AccessToken ) -> (Self, impl Stream<Item = AccessToken>)

Use Bearer authentication. This will use the provided refresh token to refresh the access token when/if it expires.

You can listen for updates to the token using the Stream returned as the second part of the tuple.

Example
let (auth, token_receiver) = Auth::refreshable_access_token(
    "<client_id>",
    "<client_secret>",
    "<redirect_uri>",
    AccessToken { .. },
);

tokio::spawn(async move {
    while let Some(token) = token_receiver.next().await {
        println!("new token = {:#?}", token);
    }
});
Panics

This function panics if the TLS backend cannot be initialized, or the resolver cannot load the system configuration.

source

pub fn client_credentials( client_id: impl Into<String>, client_secret: impl Into<String> ) -> Self

Use Bearer authentication via the client_credentials flow.

This allows you to log in to the api as the account that created the developer application.

Panics

This function panics if the TLS backend cannot be initialized, or the resolver cannot load the system configuration.

source

pub fn client_credentials_with_scopes( client_id: impl Into<String>, client_secret: impl Into<String>, scopes: Vec<String> ) -> Self

Use Bearer authentication via the client_credentials flow, specifying the scopes for the token.

This allows you to log in to the api as the account that created the developer application.

Panics

This function panics if the TLS backend cannot be initialized, or the resolver cannot load the system configuration.

Trait Implementations§

source§

impl Clone for Auth

source§

fn clone(&self) -> Auth

Returns a copy 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 Auth

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Auth

§

impl Send for Auth

§

impl Sync for Auth

§

impl Unpin for Auth

§

impl !UnwindSafe for Auth

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

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

const: unstable · 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> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more