Repository
jwtlib.repository
UserRepository: Persistence layer for authentication
This module defines the MongoDB-backed repository for managing user records, including creation, lookup, and credential verification.
UserRepository
UserRepository()
Bases: BaseRepository[User]
authenticate_user
async
authenticate_user(user_auth: LoginRequest) -> Optional[dict]
Verify user credentials and prepare a login response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_auth |
LoginRequest
|
Login credentials. |
required |
Returns:
| Type | Description |
|---|---|
Optional[dict]
|
A dictionary containing the access token and public user if successful, |
Optional[dict]
|
otherwise None. |
create
async
create(user_create: RegisterRequest) -> PublicUser
Create a new user record.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_create |
RegisterRequest
|
Registration data including prospective password. |
required |
Returns:
| Type | Description |
|---|---|
PublicUser
|
A PublicUser representation of the created user. |
get_active_users
async
get_active_users(skip: int = 0, limit: int = 100) -> List[User]
List all active users with pagination.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
skip |
int
|
Number of records to skip. |
0
|
limit |
int
|
Maximum number of records to return. |
100
|
Returns:
| Type | Description |
|---|---|
List[User]
|
A list of active User documents. |
get_by_email
async
get_by_email(email: str) -> Optional[User]
Retrieve a user by their unique email address.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
email |
str
|
The email address to search for. |
required |
Returns:
| Type | Description |
|---|---|
Optional[User]
|
The User document if found, otherwise None. |
get_by_username
async
get_by_username(username: str) -> Optional[User]
Retrieve a user by their unique username.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
username |
str
|
The username to search for. |
required |
Returns:
| Type | Description |
|---|---|
Optional[User]
|
The User document if found, otherwise None. |