Source code for dmr.security.token.auth.request

from typing import TYPE_CHECKING, Literal, overload

from django.http import HttpRequest

if TYPE_CHECKING:
    from dmr.security.token.models import Token


@overload
def request_token(
    request: HttpRequest,
    *,
    strict: Literal[True],
) -> 'Token': ...


@overload
def request_token(
    request: HttpRequest,
    *,
    strict: bool = False,
) -> 'Token | None': ...


[docs] def request_token( request: HttpRequest, *, strict: bool = False, ) -> 'Token | None': """ Return the Token from request, if it was authed with one. When *strict* is passed and *request* has no token, we raise :exc:`AttributeError`. """ token = getattr(request, '__dmr_token__', None) if token is None and strict: raise AttributeError('__dmr_token__') return token