#[non_exhaustive]pub enum ProviderKey {
OidcGoogle,
OidcApple,
OidcGeneric {
issuer: String,
},
Email,
LanPair,
}Expand description
The external identity-provider namespace a subject string lives in.
Two users with the same Google sub must collide; the same email address
presented to Apple vs. Google must not collide. ProviderKey is the
namespace tag that disambiguates.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
OidcGoogle
Google OIDC — subject is the sub claim from Google’s ID token.
OidcApple
Apple Sign In — subject is the sub claim from Apple’s ID token.
OidcGeneric
Any other OIDC issuer; subject is that issuer’s sub claim.
Email-based identity (magic-link or password). subject is the email.
LanPair
LAN-pair identity. subject is the device’s mshr node-id.
Trait Implementations§
Source§impl Clone for ProviderKey
impl Clone for ProviderKey
Source§impl Debug for ProviderKey
impl Debug for ProviderKey
Source§impl<'de> Deserialize<'de> for ProviderKey
impl<'de> Deserialize<'de> for ProviderKey
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
impl Eq for ProviderKey
Source§impl Hash for ProviderKey
impl Hash for ProviderKey
Source§impl PartialEq for ProviderKey
impl PartialEq for ProviderKey
Source§impl Serialize for ProviderKey
impl Serialize for ProviderKey
impl StructuralPartialEq for ProviderKey
Auto Trait Implementations§
impl Freeze for ProviderKey
impl RefUnwindSafe for ProviderKey
impl Send for ProviderKey
impl Sync for ProviderKey
impl Unpin for ProviderKey
impl UnsafeUnpin for ProviderKey
impl UnwindSafe for ProviderKey
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
Mutably borrows from an owned value. Read more