Enum glimesh::Auth[][src]

pub enum Auth {
    ClientId(String),
    AccessToken(String),
    RefreshableAccessToken(RefreshableAccessToken),
    ClientCredentials(ClientCredentials),
}

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

impl Auth[src]

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

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

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

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.

pub fn refreshable_access_token(
    client_id: impl Into<String>,
    client_secret: impl Into<String>,
    redirect_uri: impl Into<String>,
    access_token: AccessToken
) -> (Self, Receiver<AccessToken>)
[src]

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 tokio::sync::watch::Receiver 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 token_receiver.changed().await.is_ok() {
        println!("new token = {:#?}", *token_receiver.borrow());
    }
});

Panics

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

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

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.

Trait Implementations

impl Debug for Auth[src]

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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