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§
fn put(&self, rec: SessionRecord) -> Result<(), StoreError>
Sourcefn get(&self, token: &str) -> Result<Option<SessionRecord>, StoreError>
fn get(&self, token: &str) -> Result<Option<SessionRecord>, StoreError>
原样返回记录,不过滤过期。过期判定归 guard ——
若此处对过期记录返回 None,verify 将无法区分 TokenExpired 与 TokenUnknown。
fn touch(&self, token: &str, now: u64) -> Result<(), StoreError>
fn revoke(&self, token: &str) -> Result<(), StoreError>
Sourcefn revoke_subject(&self, subject: &str) -> Result<usize, StoreError>
fn revoke_subject(&self, subject: &str) -> Result<usize, StoreError>
吊销某 subject 的全部会话,返回受影响条数。
Sourcefn recent_logins(&self, subject: &str) -> Result<Vec<LoginPoint>, StoreError>
fn recent_logins(&self, subject: &str) -> Result<Vec<LoginPoint>, StoreError>
该 subject 的登录历史,按时间升序(最旧在前)。
fn record_login( &self, subject: &str, point: LoginPoint, ) -> Result<(), StoreError>
Sourcefn purge_expired(&self, now: u64) -> Result<usize, StoreError>
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".