App
jwtlib.app
Application-level authentication logic.
Summary
This module contains pure authentication and introspection logic with no framework or transport coupling. It is intended to be used by HTTP adapters, CLIs, background workers, and other services that require JWT-based authentication and user resolution.
Notes
Responsibilities:
1 2 3 4 | |
Constraints:
1 | |
Classes
Functions
get_logged_in_user
async
Resolve the currently authenticated user from a JWT.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token |
str
|
JWT access token. |
required |
repo |
UserRepository
|
Optional user repository instance. If not provided, a default repository is obtained via dependency utilities. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
PublicUser |
PublicUser
|
The authenticated user as a PublicUser. |
Raises:
| Type | Description |
|---|---|
InvalidToken
|
If the token is missing, malformed, or invalid. |
AuthError
|
If the token is valid, but the user cannot be resolved. |
introspect_token
async
Introspect a JWT for service-to-service authentication.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token |
str
|
JWT access token to introspect. |
required |
repo |
UserRepository
|
Optional user repository instance. If not provided, a default repository is obtained via dependency utilities. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
IntrospectResponse |
IntrospectResponse
|
IntrospectResponse indicating valid token with user, invalid token, or valid token with no user. |
Notes
Responsibilities:
1 | |
Guarantees:
1 | |
login_user
async
Authenticate a user and issue an access token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user |
LoginRequest
|
Login payload containing username and password. |
required |
repo |
UserRepository
|
Optional user repository instance. If not provided, a default repository is obtained via dependency utilities. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
LoginResponse |
LoginResponse
|
LoginResponse containing the issued access token and related metadata. |
Raises:
| Type | Description |
|---|---|
AuthError
|
If the credentials are invalid. |
logout_user
async
Perform a stateless logout.
Returns:
| Name | Type | Description |
|---|---|---|
LogoutResponse |
LogoutResponse
|
LogoutResponse containing a logout confirmation message. |
Notes
Guarantees:
1 | |
register_user
async
Register a new user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user |
RegisterRequest
|
Registration payload containing username, email, and password. |
required |
repo |
UserRepository
|
Optional user repository instance. If not provided, a default repository is obtained via dependency utilities. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
PublicUser |
PublicUser
|
The newly created user as a public user representation. |