INNER CODE UNIT · Python

current_principal

NextWeb4/lan-file-transfer · lan_transfer/api.py:113

    async def current_principal(
        authorization: Annotated[str | None, Header(alias="Authorization")] = None,
        x_admin_session: Annotated[str | None, Header(alias="X-Admin-Session")] = None,
        x_user_session: Annotated[str | None, Header(alias="X-User-Session")] = None,
        session_cookie: Annotated[str | None, Cookie(alias=SESSION_COOKIE)] = None,
    ) -> Principal:
        token = session_token_from_headers(authorization, x_admin_session, x_user_session, session_cookie)
        return auth.principal_for_session(token) or guest_principal()

    return current_principal


def login_dependency(auth: AccountAuthManager):
    current = principal_dependency(auth)

    async def require_login(principal: Principal = Depends(current)) -> Principal:
        if not principal.is_authenticated:
            raise HTTPException(status_code=403, detail="Login required.")

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…