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 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.
Auto Trait Implementations§
impl<DB> Freeze for SessionManager<DB>
impl<DB> !RefUnwindSafe for SessionManager<DB>
impl<DB> Send for SessionManager<DB>
impl<DB> Sync for SessionManager<DB>
impl<DB> Unpin for SessionManager<DB>
impl<DB> !UnwindSafe for SessionManager<DB>
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