Provider

Trait Provider 

Source
pub trait Provider: Send + Sync {
    // Required methods
    fn auth_url(&self) -> &str;
    fn token_url(&self) -> &str;
    fn redirect_uri(&self) -> &str;
    fn build_authorize_redirect(
        &self,
        request: &OAuthFlowRequest,
    ) -> ProviderResult<OAuthFlowResult>;
    fn exchange_code(
        &self,
        claims: &TokenHandleClaims,
        code: &str,
    ) -> ProviderResult<TokenSet>;
    fn refresh(
        &self,
        claims: &TokenHandleClaims,
        refresh_token: &str,
    ) -> ProviderResult<TokenSet>;
    fn revoke(
        &self,
        claims: &TokenHandleClaims,
        token: &str,
    ) -> ProviderResult<()>;
}
Expand description

High-level trait all OAuth providers must implement for the broker.

Required Methods§

Source

fn auth_url(&self) -> &str

Authorization endpoint for the provider.

Source

fn token_url(&self) -> &str

Token endpoint for the provider.

Source

fn redirect_uri(&self) -> &str

Registered redirect URI the provider will callback with.

Source

fn build_authorize_redirect( &self, request: &OAuthFlowRequest, ) -> ProviderResult<OAuthFlowResult>

Build an authorization redirect response for a flow request.

Source

fn exchange_code( &self, claims: &TokenHandleClaims, code: &str, ) -> ProviderResult<TokenSet>

Exchange an authorization code for tokens.

Source

fn refresh( &self, claims: &TokenHandleClaims, refresh_token: &str, ) -> ProviderResult<TokenSet>

Refresh an existing token set.

Source

fn revoke(&self, claims: &TokenHandleClaims, token: &str) -> ProviderResult<()>

Revoke an access or refresh token.

Implementors§