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§
Sourcefn redirect_uri(&self) -> &str
fn redirect_uri(&self) -> &str
Registered redirect URI the provider will callback with.
Build an authorization redirect response for a flow request.
Sourcefn exchange_code(
&self,
claims: &TokenHandleClaims,
code: &str,
) -> ProviderResult<TokenSet>
fn exchange_code( &self, claims: &TokenHandleClaims, code: &str, ) -> ProviderResult<TokenSet>
Exchange an authorization code for tokens.
Sourcefn refresh(
&self,
claims: &TokenHandleClaims,
refresh_token: &str,
) -> ProviderResult<TokenSet>
fn refresh( &self, claims: &TokenHandleClaims, refresh_token: &str, ) -> ProviderResult<TokenSet>
Refresh an existing token set.
Sourcefn revoke(&self, claims: &TokenHandleClaims, token: &str) -> ProviderResult<()>
fn revoke(&self, claims: &TokenHandleClaims, token: &str) -> ProviderResult<()>
Revoke an access or refresh token.