Skip to main content

SessionStore

Trait SessionStore 

Source
pub trait SessionStore: Send + Sync {
    // Required methods
    fn put(&self, rec: SessionRecord) -> Result<(), StoreError>;
    fn get(&self, token: &str) -> Result<Option<SessionRecord>, StoreError>;
    fn touch(&self, token: &str, now: u64) -> Result<(), StoreError>;
    fn revoke(&self, token: &str) -> Result<(), StoreError>;
    fn revoke_subject(&self, subject: &str) -> Result<usize, StoreError>;
    fn recent_logins(
        &self,
        subject: &str,
    ) -> Result<Vec<LoginPoint>, StoreError>;
    fn record_login(
        &self,
        subject: &str,
        point: LoginPoint,
    ) -> Result<(), StoreError>;
    fn purge_expired(&self, now: u64) -> Result<usize, StoreError>;
}

Required Methods§

Source

fn put(&self, rec: SessionRecord) -> Result<(), StoreError>

Source

fn get(&self, token: &str) -> Result<Option<SessionRecord>, StoreError>

原样返回记录,不过滤过期。过期判定归 guard —— 若此处对过期记录返回 None,verify 将无法区分 TokenExpired 与 TokenUnknown。

Source

fn touch(&self, token: &str, now: u64) -> Result<(), StoreError>

Source

fn revoke(&self, token: &str) -> Result<(), StoreError>

Source

fn revoke_subject(&self, subject: &str) -> Result<usize, StoreError>

吊销某 subject 的全部会话,返回受影响条数。

Source

fn recent_logins(&self, subject: &str) -> Result<Vec<LoginPoint>, StoreError>

该 subject 的登录历史,按时间升序(最旧在前)。

Source

fn record_login( &self, subject: &str, point: LoginPoint, ) -> Result<(), StoreError>

Source

fn purge_expired(&self, now: u64) -> Result<usize, StoreError>

清除已过期记录,返回清除条数。

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§