Sessions¶
sessions
¶
Session management core logic.
Provides business logic for user session management including creation, retrieval, and deletion of sessions.
Classes¶
SessionNotFoundError
¶
Bases: Exception
Raised when a session is not found.
Functions¶
create_session
¶
create_session(
*,
sessions: SessionAdapter,
users: UserAdapter,
user_id: UUID,
device: str | None = None,
ip_address: str | None = None,
user_agent: str | None = None
) -> Any
Create a new session for a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sessions |
SessionAdapter
|
Session adapter for database operations |
required |
users |
UserAdapter
|
User adapter for database operations |
required |
user_id |
UUID
|
User's unique identifier |
required |
device |
str | None
|
Device information |
None
|
ip_address |
str | None
|
IP address of the client |
None
|
user_agent |
str | None
|
User agent string |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
Created session object |
Source code in fastauth/core/sessions.py
get_user_sessions
¶
get_user_sessions(*, sessions: SessionAdapter, user_id: UUID) -> List[Any]
Get all active sessions for a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sessions |
SessionAdapter
|
Session adapter for database operations |
required |
user_id |
UUID
|
User's unique identifier |
required |
Returns:
| Type | Description |
|---|---|
List[Any]
|
List of session objects |
Source code in fastauth/core/sessions.py
delete_session
¶
delete_session(
*, sessions: SessionAdapter, session_id: UUID, user_id: UUID
) -> None
Delete a specific session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sessions |
SessionAdapter
|
Session adapter for database operations |
required |
session_id |
UUID
|
Session's unique identifier |
required |
user_id |
UUID
|
User's unique identifier (for authorization) |
required |
Raises:
| Type | Description |
|---|---|
SessionNotFoundError
|
If session doesn't exist or doesn't belong to user |
Source code in fastauth/core/sessions.py
delete_all_user_sessions
¶
delete_all_user_sessions(
*,
sessions: SessionAdapter,
user_id: UUID,
except_session_id: UUID | None = None
) -> None
Delete all sessions for a user, optionally excluding the current session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sessions |
SessionAdapter
|
Session adapter for database operations |
required |
user_id |
UUID
|
User's unique identifier |
required |
except_session_id |
UUID | None
|
Optional session ID to keep (current session) |
None
|
Source code in fastauth/core/sessions.py
update_session_activity
¶
update_session_activity(*, sessions: SessionAdapter, session_id: UUID) -> None
Update the last active timestamp for a session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sessions |
SessionAdapter
|
Session adapter for database operations |
required |
session_id |
UUID
|
Session's unique identifier |
required |
Source code in fastauth/core/sessions.py
cleanup_inactive_sessions
¶
cleanup_inactive_sessions(
*, sessions: SessionAdapter, inactive_days: int = 30
) -> None
Remove sessions that haven't been active for a specified number of days.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sessions |
SessionAdapter
|
Session adapter for database operations |
required |
inactive_days |
int
|
Number of days of inactivity before cleanup (default: 30) |
30
|