jam.ext.starlette¶
starlette
¶
Starlette integration.
Starlette docs: https://starlette.dev
Modules:
| Name | Description |
|---|---|
backends |
|
objects |
|
Classes:
| Name | Description |
|---|---|
BaseUser |
BaseUser with builder from payload. |
JWTBackend |
JWT Backend for litestar. |
PASETOBackend |
PASETO auth backend. |
SessionBackend |
Session backend. |
SimpleUser |
Simple user with payload only. |
BaseUser
¶
Bases: ABC, BaseUser
BaseUser with builder from payload.
Methods:
| Name | Description |
|---|---|
from_payload |
Create instance by payload. |
from_payload
abstractmethod
classmethod
¶
from_payload(payload: dict[str, Any]) -> User
Create instance by payload.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
payload
|
dict[str, Any]
|
Payload from auth |
required |
Example:
class MyUser(JamBaseUser):
id: int
username: str
@classmethod
def from_payload(cls, payload):
return cls(
id=payload["id"],
username=payload["username"]
)
payload = jwt.decode(token)
user = MyUser.from_payload(payload)
JWTBackend
¶
JWTBackend(
config: str | dict[str, Any] | None = None,
pointer: str = GENERIC_POINTER,
cookie_name: str | None = None,
header_name: str | None = None,
use_list: bool = False,
user: type[BaseUser] = SimpleUser,
**kwargs,
)
PASETOBackend
¶
PASETOBackend(
config: str | dict[str, Any] | None = None,
pointer: str = GENERIC_POINTER,
cookie_name: str | None = None,
header_name: str | None = None,
bearer: bool = False,
user: type[BaseUser] = SimpleUser,
**kwargs,
)
SessionBackend
¶
SessionBackend(
config: str | dict[str, Any] | None = None,
pointer: str = GENERIC_POINTER,
cookie_name: str | None = None,
header_name: str | None = None,
bearer: bool = False,
user: type[BaseUser] = SimpleUser,
**kwargs,
)