pub enum OAuthProvider {
GitHub,
Google,
Microsoft,
Discord,
Twitter,
Facebook,
LinkedIn,
GitLab,
Custom {
name: String,
config: Box<OAuthProviderConfig>,
},
}
Expand description
Supported OAuth providers.
Variants§
GitHub
GitHub OAuth provider
Google OAuth provider
Microsoft
Microsoft OAuth provider
Discord
Discord OAuth provider
Twitter OAuth provider
Facebook OAuth provider
LinkedIn OAuth provider
GitLab
GitLab OAuth provider
Custom
Generic OAuth provider with custom configuration
Implementations§
Source§impl OAuthProvider
impl OAuthProvider
Sourcepub fn config(&self) -> OAuthProviderConfig
pub fn config(&self) -> OAuthProviderConfig
Get the configuration for this provider.
Sourcepub fn custom(name: impl Into<String>, config: OAuthProviderConfig) -> Self
pub fn custom(name: impl Into<String>, config: OAuthProviderConfig) -> Self
Create a custom OAuth provider.
Build authorization URL.
Sourcepub async fn exchange_code(
&self,
client_id: &str,
client_secret: &str,
authorization_code: &str,
redirect_uri: &str,
code_verifier: Option<&str>,
) -> Result<OAuthTokenResponse>
pub async fn exchange_code( &self, client_id: &str, client_secret: &str, authorization_code: &str, redirect_uri: &str, code_verifier: Option<&str>, ) -> Result<OAuthTokenResponse>
Exchange authorization code for tokens.
Sourcepub async fn refresh_token(
&self,
client_id: &str,
client_secret: &str,
refresh_token: &str,
) -> Result<OAuthTokenResponse>
pub async fn refresh_token( &self, client_id: &str, client_secret: &str, refresh_token: &str, ) -> Result<OAuthTokenResponse>
Refresh an access token.
Sourcepub async fn get_user_info(&self, access_token: &str) -> Result<OAuthUserInfo>
pub async fn get_user_info(&self, access_token: &str) -> Result<OAuthUserInfo>
Get user information using an access token.
Sourcepub async fn revoke_token(&self, access_token: &str) -> Result<()>
pub async fn revoke_token(&self, access_token: &str) -> Result<()>
Revoke a token if the provider supports it.
Perform device authorization flow.
Sourcepub async fn poll_device_code(
&self,
client_id: &str,
device_code: &str,
_interval: Option<u64>,
) -> Result<OAuthTokenResponse>
pub async fn poll_device_code( &self, client_id: &str, device_code: &str, _interval: Option<u64>, ) -> Result<OAuthTokenResponse>
Poll for access token using device code.
Trait Implementations§
Source§impl Clone for OAuthProvider
impl Clone for OAuthProvider
Source§fn clone(&self) -> OAuthProvider
fn clone(&self) -> OAuthProvider
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for OAuthProvider
impl Debug for OAuthProvider
Source§impl<'de> Deserialize<'de> for OAuthProvider
impl<'de> Deserialize<'de> for OAuthProvider
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for OAuthProvider
impl Display for OAuthProvider
Source§impl ExtractProfile for OAuthProvider
impl ExtractProfile for OAuthProvider
Source§fn extract_profile(
&self,
_provider: &OAuthProvider,
json_response: Value,
) -> Result<UserProfile>
fn extract_profile( &self, _provider: &OAuthProvider, json_response: Value, ) -> Result<UserProfile>
Extract a user profile from a JSON response
Source§impl PartialEq for OAuthProvider
impl PartialEq for OAuthProvider
Source§impl Serialize for OAuthProvider
impl Serialize for OAuthProvider
impl Eq for OAuthProvider
impl StructuralPartialEq for OAuthProvider
Auto Trait Implementations§
impl Freeze for OAuthProvider
impl RefUnwindSafe for OAuthProvider
impl Send for OAuthProvider
impl Sync for OAuthProvider
impl Unpin for OAuthProvider
impl UnwindSafe for OAuthProvider
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string
, but without panic on OOM.