Skip to main content

# Расширение aiohttp для управления процессом авторизации пользователей в системе

## Краткое описание функционала расширения

Данное расширение представляет из себя специализированный middleware производящий проверку заголовков запроса и производящий по результатам авторизацию (а в некоторых случаях и аутентификацию тоже) пользователя

Успешная аутентификация заканчиваются установкой ключа ‘user’ экземпляра запроса (request). Значением ключа ‘user’, в этом случае, выступает экземпляра класса ORM Gino соответствующий профилю авторизованного пользователя.

В случае провальной авторизации ключ ‘user’ приобретает значение None

### Кастомный профиль пользователя Расширение определеяет порофиль пользователя самостоятельно, но способно работать и с кастомным профилем определенным на уровне приложения. Для этого следует указать класс профиля (это обязательно должен быть класс ORM Gino) в настройках, в ключе ‘user_model’ (см. демо-приложение, находящееся в под-каталоге demo/ )

### Бакэенды аутентификации Расширение реализует различные способы авторизации пользователя путем подключения т. н. бакэндов авторизации, каждый из которых представляет из себя класс, наследующий от абстрактного класса AuthorizationBackend

Расширение несет в себе два такаих бакэенда: бакэнд базовой аутентификации и бакэенд аутентификации Bearer (терехногая аутентифкация с использованием JWT-токена)

Расширение не накладывает ограничений на количество подключенных бакэендов аутентифкации: любое их количество может быть включено в список ключа auth_backends настроек приложения. Расширение будет пытаться авторизовать пользователя в порядке перечисленных бакэендов и прекращает попытки при первом успешном результате

### Декораторы

Расширение несет с собой два декоратора. Первый из них - authorization_required применяется в общем случае, для декорирования обработчика ответа сервера, для гарантии что обработчик будет работать только с авторизованным запросом. Второй декоратор, - bearer_authorization_required - устроен сложнее.

Так же как и декоратор authorization_required, декоратор bearer_authorization_required применяется в случае необходимости получения гарантии того, что обработчик запроса к серверу будет работать с авторизованным запросом, но кроме этого этот декоратор способен обрабатывать ошибки декодирования и проверки токена и отдавать их в качестве причины отказа в авторизации на ресурсе. Кроме того, в заголовок ответа данный декоратор добавляет ключ www-authenticate, в котором указывает realm, service и scope необходимые клиенту для получения Bearer-токена в доверенном центре авторизации. Реалм центра авторизации является обязательным параметром, два других - опциональны.

## Установка

Установка расширения производится с помощью менеджера pip

`bash pip install aiohttp_ext.auth `

## Использование

см. демо-приложение, находящееся в под-каталоге demo/

Metadata

Release files for aiohttp-ext.auth 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiohttp-ext.auth 0.1.4
File Size Uploaded
aiohttp_ext.auth-0.1.4.tar.gz 10.4 kB Details

Release files / aiohttp_ext.auth-0.1.4.tar.gz

Download URL aiohttp_ext.auth-0.1.4.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9554c1adcded1986aa81d09cbd6a94d59c806cdfa918fe542f9f22e827a39df7
BLAKE2b-256 checksum
How to use checksums
b53c52083e698db6716e614be959e7d3816b1ed6f9fca7834481e5a8cd7b7270
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.36.1 CPython/3.6.8

Release history Release notifications | RSS feed

This release

0.1.4 This release

1 release file

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page