pub struct SessionManager<DB>where
DB: DatabaseAdapter,{ /* private fields */ }Expand description
Session manager handles session creation, validation, and cleanup
Implementations§
Source§impl<DB> SessionManager<DB>where
DB: DatabaseAdapter,
impl<DB> SessionManager<DB>where
DB: DatabaseAdapter,
pub fn new(config: Arc<AuthConfig>, database: Arc<DB>) -> SessionManager<DB>
Sourcepub async fn create_session(
&self,
user: &impl AuthUser,
ip_address: Option<String>,
user_agent: Option<String>,
) -> Result<<DB as SessionOps>::Session, AuthError>
pub async fn create_session( &self, user: &impl AuthUser, ip_address: Option<String>, user_agent: Option<String>, ) -> Result<<DB as SessionOps>::Session, AuthError>
Create a new session for a user
Sourcepub async fn get_session(
&self,
token: &str,
) -> Result<Option<<DB as SessionOps>::Session>, AuthError>
pub async fn get_session( &self, token: &str, ) -> Result<Option<<DB as SessionOps>::Session>, AuthError>
Get session by token
Sourcepub async fn delete_user_sessions(&self, user_id: &str) -> Result<(), AuthError>
pub async fn delete_user_sessions(&self, user_id: &str) -> Result<(), AuthError>
Delete all sessions for a user
Sourcepub async fn list_user_sessions(
&self,
user_id: &str,
) -> Result<Vec<<DB as SessionOps>::Session>, AuthError>
pub async fn list_user_sessions( &self, user_id: &str, ) -> Result<Vec<<DB as SessionOps>::Session>, AuthError>
Get all active sessions for a user
Sourcepub async fn revoke_session(&self, token: &str) -> Result<bool, AuthError>
pub async fn revoke_session(&self, token: &str) -> Result<bool, AuthError>
Revoke a specific session by token
Sourcepub async fn revoke_all_user_sessions(
&self,
user_id: &str,
) -> Result<usize, AuthError>
pub async fn revoke_all_user_sessions( &self, user_id: &str, ) -> Result<usize, AuthError>
Revoke all sessions for a user
Sourcepub async fn revoke_other_user_sessions(
&self,
user_id: &str,
current_token: &str,
) -> Result<usize, AuthError>
pub async fn revoke_other_user_sessions( &self, user_id: &str, current_token: &str, ) -> Result<usize, AuthError>
Revoke all sessions for a user except the current one
Sourcepub async fn cleanup_expired_sessions(&self) -> Result<usize, AuthError>
pub async fn cleanup_expired_sessions(&self) -> Result<usize, AuthError>
Cleanup expired sessions
Sourcepub fn is_session_fresh(&self, session: &impl AuthSession) -> bool
pub fn is_session_fresh(&self, session: &impl AuthSession) -> bool
Check whether a session is “fresh” (created recently enough for sensitive operations like password change or account deletion).
Returns true when fresh_age is set and
session.created_at() + fresh_age > now.
If fresh_age is None, the session is never considered fresh.
Sourcepub fn validate_token_format(&self, token: &str) -> bool
pub fn validate_token_format(&self, token: &str) -> bool
Validate session token format
Sourcepub fn extract_session_token(&self, req: &AuthRequest) -> Option<String>
pub fn extract_session_token(&self, req: &AuthRequest) -> Option<String>
Extract session token from a request.
Tries Bearer token from Authorization header first, then falls back to parsing the configured cookie from the Cookie header.
Trait Implementations§
Source§impl<DB> Clone for SessionManager<DB>where
DB: DatabaseAdapter,
impl<DB> Clone for SessionManager<DB>where
DB: DatabaseAdapter,
Source§fn clone(&self) -> SessionManager<DB>
fn clone(&self) -> SessionManager<DB>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more