Skip to content

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,
)

Bases: BaseBackend

JWT Backend for litestar.

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,
)

Bases: BaseBackend

PASETO auth backend.

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,
)

Bases: BaseBackend

Session backend.

SimpleUser dataclass

SimpleUser(payload: dict[str, Any])

Bases: BaseUser

Simple user with payload only.