--- title: Auth description: Публичные схемы статической авторизации. sources: - eazy_sdk.auth api_fingerprint: "sha256:6b0b2a6d74b65c986adfe829a50dc98daf7b4c4ddb4c1a57eb65fcc187329c98" --- ## Схемы ```python BearerScheme(name="bearer") BasicScheme(name="basic") ApiKeyScheme.header("X-API-Key", name="api_key") ApiKeyScheme.query("api_key", name="api_key") CookieScheme("session_id", name="cookie") ``` ## Учётные данные ```python auth = scheme.static(credential) ``` ## Композиция ```python all_of(USER_AUTH, DEVICE_AUTH) any_of(all_of(USER_AUTH, DEVICE_AUTH), BASIC) ``` Параметр `security` объявления операции принимает схему, `SecurityAlternative`, `SecurityPolicy` или `None`. | Фабрика | Тип учётных данных | Размещение в HTTP | |---|---|---| | `BasicScheme(name)` | `tuple[str, str]` | `Authorization: Basic ...` | | `BearerScheme(name)` | `str` | `Authorization: Bearer ...` | | `ApiKeyScheme.header(header, name=...)` | `str` | Заголовок запроса | | `ApiKeyScheme.query(parameter, name=...)` | `str` | Параметр query | | `CookieScheme(cookie, name=...)` | `str` | Cookie | | `session_scheme(Model)` с `Placed` | модель сессии | Несколько мест запроса сразу | `CookieScheme` задаёт ключ, который приносит вызывающий. Сессию, которую сайт ведёт на куках сам, объявляет `Cookies(...)` на корне; вместе с `CookieScheme` на одном сервисе она не объявляется. `scheme.static(credential)` создаёт привязку авторизации клиента. `all_of(...)` возвращает одну AND-альтернативу, а `any_of(...)` создаёт OR-политику. Runtime выбирает только полностью разрешимую альтернативу и не смешивает учётные данные разных вариантов. Для жизненного цикла сессии используйте `session_auth(...)`. Рукописный SDK может объявить переиспользуемую `session_scheme(...)` в атрибуте `security` роутера и вызвать её `.configure(...)`. Контракты описаны в {doc}`справочнике сессий `.