pub struct MultiProviderAuthState { /* private fields */ }Expand description
Shared state for the multi-provider auth endpoints.
Implementations§
Source§impl MultiProviderAuthState
impl MultiProviderAuthState
Sourcepub fn new(
state_store: Arc<dyn StateStore>,
session_store: Arc<dyn SessionStore>,
) -> Self
pub fn new( state_store: Arc<dyn StateStore>, session_store: Arc<dyn SessionStore>, ) -> Self
Create a new multi-provider auth state.
Sourcepub fn with_user_store(self, user_store: Arc<dyn AccountStore>) -> Self
pub fn with_user_store(self, user_store: Arc<dyn AccountStore>) -> Self
Set the user store for account linking.
When set, the callback handler uses AccountStore::link_or_create_user to
resolve provider identities to local users, enabling automatic account
linking when the same email appears across different providers.
Sourcepub fn with_trusted_email_providers(
self,
trusted: TrustedEmailProviders,
) -> Self
pub fn with_trusted_email_providers( self, trusted: TrustedEmailProviders, ) -> Self
Set which providers are trusted to assert email verification for cross-provider auto-linking (#368).
Defaults to TrustedEmailProviders::builtin_default (google + apple). Pass
TrustedEmailProviders::none for a high-assurance “trust no one” posture, or
build a custom set with TrustedEmailProviders::trust / distrust. A provider not
in the set never auto-links on email even when it claims email_verified = true.
Sourcepub fn with_redirect_uri_allowlist(self, allowlist: Vec<String>) -> Self
pub fn with_redirect_uri_allowlist(self, allowlist: Vec<String>) -> Self
Configure the allow-list of permitted redirect_uri values (#427).
Enabling this turns on the server-side redirect flow: authorize rejects any
redirect_uri not on the list, and callback redirects the browser to the
validated URI with the tokens delivered in the URL fragment (OAuth implicit style).
With no allow-list configured, the legacy JSON-token response is preserved.
Sourcepub fn register_provider(
&mut self,
name: impl Into<String>,
provider: Arc<dyn OAuthProvider>,
)
pub fn register_provider( &mut self, name: impl Into<String>, provider: Arc<dyn OAuthProvider>, )
Register an OAuth provider under the given name.
Sourcepub fn provider_names(&self) -> Vec<String>
pub fn provider_names(&self) -> Vec<String>
List the names of all registered providers.
Sourcepub fn get_provider(&self, name: &str) -> Option<&Arc<dyn OAuthProvider>>
pub fn get_provider(&self, name: &str) -> Option<&Arc<dyn OAuthProvider>>
Look up a provider by name.
Trait Implementations§
Source§impl Clone for MultiProviderAuthState
impl Clone for MultiProviderAuthState
Source§fn clone(&self) -> MultiProviderAuthState
fn clone(&self) -> MultiProviderAuthState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for MultiProviderAuthState
impl !UnwindSafe for MultiProviderAuthState
impl Freeze for MultiProviderAuthState
impl Send for MultiProviderAuthState
impl Sync for MultiProviderAuthState
impl Unpin for MultiProviderAuthState
impl UnsafeUnpin for MultiProviderAuthState
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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>
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>
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 more