Skip to main content

Identity

Struct Identity 

Source
pub struct Identity { /* private fields */ }
Expand description

A handle to the current visitor’s identity.

Extract it in any handler. It is always available: an anonymous visitor simply has no id. Every method operates on the session, so the changes are persisted by the session plugin on the way out.

Implementations§

Source§

impl Identity

Source

pub fn id(&self) -> Option<String>

Who the visitor is, or None when anonymous.

Source

pub fn is_authenticated(&self) -> bool

Whether anyone is logged in.

Source

pub fn login(&self, id: impl Into<String>)

Record id as the logged-in visitor.

The session identifier is rotated first (see Session::rotate), so a server-side store mints a fresh record rather than promoting one an attacker may have planted. Session contents other than the identity are preserved, which is what keeps a pre-login cart or locale across the boundary. Call logout first if you would rather start empty.

Source

pub fn logout(&self)

Log the visitor out and drop the whole session.

Everything goes, not just the identity keys: anything put in the session while signed in was put there for a signed-in visitor.

With a client-side store this clears the visitor’s copy but cannot revoke a copy taken beforehand, which stays valid until its signed deadline. Revocation needs server-side state.

Source

pub fn logged_in_at(&self) -> Option<i64>

When the visitor logged in, as Unix seconds.

Source

pub fn last_seen_at(&self) -> Option<i64>

When the visitor was last seen, as Unix seconds.

Only maintained when Identities::visit_deadline is set, and only written periodically rather than on every request. See that method for why.

Trait Implementations§

Source§

impl Clone for Identity

Source§

fn clone(&self) -> Identity

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Identity

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromCallParts for Identity

Source§

fn from_call_parts<'life0, 'async_trait>( call: &'life0 mut Call, ) -> Pin<Box<dyn Future<Output = Result<Self>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Build Self from a mutable borrow of the call, or return an Error (which the handler renders as the response).

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromCall for T
where T: FromCallParts,

Source§

fn from_call<'async_trait>( call: Call, ) -> Pin<Box<dyn Future<Output = Result<T, Error>> + Send + 'async_trait>>
where T: 'async_trait,

Build Self by consuming the call, or return an Error (which the handler renders as the response).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more