Trait twitch_oauth2::TwitchToken
source · [−]pub trait TwitchToken {
fn token_type() -> BearerTokenType;
fn client_id(&self) -> &ClientId;
fn token(&self) -> &AccessToken;
fn login(&self) -> Option<&UserNameRef>;
fn user_id(&self) -> Option<&UserIdRef>;
fn refresh_token<'a, 'life0, 'async_trait, C>(
&'life0 mut self,
http_client: &'a C
) -> Pin<Box<dyn Future<Output = Result<(), RefreshTokenError<<C as Client<'a>>::Error>>> + Send + 'async_trait>>
where
Self: Sized,
C: Client<'a>,
'a: 'async_trait,
C: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait;
fn expires_in(&self) -> Duration;
fn scopes(&self) -> &[Scope];
fn is_elapsed(&self) -> bool { ... }
fn validate_token<'a, 'life0, 'async_trait, C>(
&'life0 self,
http_client: &'a C
) -> Pin<Box<dyn Future<Output = Result<ValidatedToken, ValidationError<<C as Client<'a>>::Error>>> + Send + 'async_trait>>
where
Self: Sized,
C: Client<'a>,
'a: 'async_trait,
C: 'async_trait,
'life0: 'async_trait,
Self: Sync + 'async_trait,
{ ... }
fn revoke_token<'a, 'async_trait, C>(
self,
http_client: &'a C
) -> Pin<Box<dyn Future<Output = Result<(), RevokeTokenError<<C as Client<'a>>::Error>>> + Send + 'async_trait>>
where
Self: Sized,
C: Client<'a>,
'a: 'async_trait,
C: 'async_trait,
Self: Send + 'async_trait,
{ ... }
}
Expand description
Trait for twitch tokens to get fields and generalize over AppAccessToken and UserToken
Required Methods
fn token_type() -> BearerTokenType
fn token_type() -> BearerTokenType
Get the type of token.
Client ID associated with the token. Twitch requires this in all helix API calls
fn token(&self) -> &AccessToken
fn token(&self) -> &AccessToken
Get the AccessToken for authenticating
Example
use twitch_oauth2::TwitchToken;
println!("token: {}", user_token.token().secret());
fn login(&self) -> Option<&UserNameRef>
fn login(&self) -> Option<&UserNameRef>
Get the username associated to this token
fn refresh_token<'a, 'life0, 'async_trait, C>(
&'life0 mut self,
http_client: &'a C
) -> Pin<Box<dyn Future<Output = Result<(), RefreshTokenError<<C as Client<'a>>::Error>>> + Send + 'async_trait>> where
Self: Sized,
C: Client<'a>,
'a: 'async_trait,
C: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
fn refresh_token<'a, 'life0, 'async_trait, C>(
&'life0 mut self,
http_client: &'a C
) -> Pin<Box<dyn Future<Output = Result<(), RefreshTokenError<<C as Client<'a>>::Error>>> + Send + 'async_trait>> where
Self: Sized,
C: Client<'a>,
'a: 'async_trait,
C: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
Refresh this token, changing the token to a newer one
fn expires_in(&self) -> Duration
fn expires_in(&self) -> Duration
Get current lifetime of token.
Provided Methods
fn is_elapsed(&self) -> bool
fn is_elapsed(&self) -> bool
Returns whether or not the token is expired.
use twitch_oauth2::{UserToken, TwitchToken};
if user_token.is_elapsed() {
user_token.refresh_token(&reqwest::Client::builder().redirect(reqwest::redirect::Policy::none()).build()?).await?;
}
fn validate_token<'a, 'life0, 'async_trait, C>(
&'life0 self,
http_client: &'a C
) -> Pin<Box<dyn Future<Output = Result<ValidatedToken, ValidationError<<C as Client<'a>>::Error>>> + Send + 'async_trait>> where
Self: Sized,
C: Client<'a>,
'a: 'async_trait,
C: 'async_trait,
'life0: 'async_trait,
Self: Sync + 'async_trait,
fn validate_token<'a, 'life0, 'async_trait, C>(
&'life0 self,
http_client: &'a C
) -> Pin<Box<dyn Future<Output = Result<ValidatedToken, ValidationError<<C as Client<'a>>::Error>>> + Send + 'async_trait>> where
Self: Sized,
C: Client<'a>,
'a: 'async_trait,
C: 'async_trait,
'life0: 'async_trait,
Self: Sync + 'async_trait,
Validate this token. Should be checked on regularly, according to https://dev.twitch.tv/docs/authentication#validating-requests
Note
This will not mutate any current data in the TwitchToken
Revoke the token. See https://dev.twitch.tv/docs/authentication#revoking-access-tokens