Sessions¶
sessions
¶
Session adapter interface.
Defines the abstract interface for user session management. Handles session creation, retrieval, deletion, and cleanup.
Classes¶
SessionAdapter
¶
Bases: ABC
Abstract base class for user session database operations.
Implementations must provide database-specific logic for session management. Sessions track user login state across multiple devices.
Functions¶
create_session
abstractmethod
¶
create_session(
*,
user_id: UUID,
device: str | None = None,
ip_address: str | None = None,
user_agent: str | None = None
) -> Any
Create a new user session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id |
UUID
|
User's unique identifier |
required |
device |
str | None
|
Optional device name/description |
None
|
ip_address |
str | None
|
Client IP address |
None
|
user_agent |
str | None
|
Browser/client user agent string |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
Created session object |
Source code in fastauth/adapters/base/sessions.py
get_session_by_id
abstractmethod
¶
Retrieve a session by its ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session_id |
UUID
|
Session's unique identifier |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Session object if found, None otherwise |
get_user_sessions
abstractmethod
¶
Get all sessions for a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id |
UUID
|
User's unique identifier |
required |
Returns:
| Type | Description |
|---|---|
list[Any]
|
List of session objects |
delete_session
abstractmethod
¶
Delete a specific session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session_id |
UUID
|
Session's unique identifier |
required |
delete_user_sessions
abstractmethod
¶
Delete all sessions for a user, optionally keeping one.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id |
UUID
|
User's unique identifier |
required |
except_session_id |
UUID | None
|
Optional session ID to preserve |
None
|
Source code in fastauth/adapters/base/sessions.py
update_last_active
abstractmethod
¶
Update the last active timestamp for a session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session_id |
UUID
|
Session's unique identifier |
required |
cleanup_inactive_sessions
abstractmethod
¶
Remove sessions that have been inactive for too long.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
inactive_days |
int
|
Number of days of inactivity before cleanup |
30
|