pub struct MfaChallenge {
pub id: String,
pub mfa_type: MfaType,
pub user_id: String,
pub created_at: DateTime<Utc>,
pub expires_at: DateTime<Utc>,
pub attempts: u32,
pub max_attempts: u32,
pub code_hash: Option<String>,
pub message: Option<String>,
pub data: HashMap<String, Value>,
}Expand description
Multi-factor authentication challenge.
Fields§
§id: StringUnique challenge ID
mfa_type: MfaTypeType of MFA required
user_id: StringUser ID this challenge is for
created_at: DateTime<Utc>When the challenge was created
expires_at: DateTime<Utc>When the challenge expires
attempts: u32Number of verification attempts made
max_attempts: u32Maximum allowed attempts before the challenge is invalidated
code_hash: Option<String>Hash of the expected OTP code (for Sms/Email/Totp methods).
None for methods that verify externally (Push, SecurityKey).
message: Option<String>Optional message or instructions to show the user
data: HashMap<String, Value>Additional challenge data (e.g. masked phone, masked email, session token)
Implementations§
Trait Implementations§
Source§impl Clone for MfaChallenge
impl Clone for MfaChallenge
Source§fn clone(&self) -> MfaChallenge
fn clone(&self) -> MfaChallenge
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 MfaChallenge
impl Debug for MfaChallenge
Source§impl<'de> Deserialize<'de> for MfaChallenge
impl<'de> Deserialize<'de> for MfaChallenge
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
Auto Trait Implementations§
impl Freeze for MfaChallenge
impl RefUnwindSafe for MfaChallenge
impl Send for MfaChallenge
impl Sync for MfaChallenge
impl Unpin for MfaChallenge
impl UnsafeUnpin for MfaChallenge
impl UnwindSafe for MfaChallenge
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<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 more