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,
pkce_verifier: Option<&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,
pkce_verifier: Option<&str>,
) -> ProviderResult<TokenSet>
fn exchange_code( &self, claims: &TokenHandleClaims, code: &str, pkce_verifier: Option<&str>, ) -> ProviderResult<TokenSet>
Exchange an authorization code for tokens.
Providers SHOULD enforce PKCE when supported by the upstream
integration. If the caller generated a verifier during the authorize
redirect, it will be supplied via pkce_verifier; implementations are
free to ignore the hint when the upstream does not require it.
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.