pub struct OneTimeTokenService { /* private fields */ }Expand description
Issues and redeems one-time tokens over an OttStore.
Implementations§
Source§impl OneTimeTokenService
impl OneTimeTokenService
pub fn new(store: Arc<dyn OttStore>) -> Self
Sourcepub async fn issue(
&self,
user_id: &str,
purpose: OttPurpose,
ttl_secs: u64,
) -> Result<String>
pub async fn issue( &self, user_id: &str, purpose: OttPurpose, ttl_secs: u64, ) -> Result<String>
Issue a high-entropy URL-safe token for user_id valid for ttl_secs.
Returns the plaintext token — deliver it, do not store it.
Sourcepub async fn issue_numeric(
&self,
user_id: &str,
purpose: OttPurpose,
digits: u32,
ttl_secs: u64,
) -> Result<String>
pub async fn issue_numeric( &self, user_id: &str, purpose: OttPurpose, digits: u32, ttl_secs: u64, ) -> Result<String>
Issue a short numeric OTP (e.g. 6 digits) for SMS/email second-channel
login. Same single-use + TTL guarantees as issue.
Auto Trait Implementations§
impl !RefUnwindSafe for OneTimeTokenService
impl !UnwindSafe for OneTimeTokenService
impl Freeze for OneTimeTokenService
impl Send for OneTimeTokenService
impl Sync for OneTimeTokenService
impl Unpin for OneTimeTokenService
impl UnsafeUnpin for OneTimeTokenService
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request