App
jwtlib.app
Summary
Application-level authentication logic.
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 2 3 4 5 | |
Classes
Functions
get_logged_in_user
async
Resolve the currently authenticated user from a JWT.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token |
str
|
|
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 |
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
|
|
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
|
|
Notes
Responsibilities:
1 2 3 | |
Guarantees:
1 2 3 | |
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
|
|
Raises:
| Type | Description |
|---|---|
AuthError
|
If the credentials are invalid. |
logout_user
async
Perform a stateless logout.
Returns:
| Name | Type | Description |
|---|---|---|
LogoutResponse |
LogoutResponse
|
|
Notes
Guarantees:
1 2 3 | |
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. |