Skip to main content

Пользователи и авторизация

Project description

# Расширение 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/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiohttp_ext.auth-0.1.2.tar.gz (10.4 kB view hashes)

Uploaded Source

Built Distribution

aiohttp_ext.auth-0.1.2-py3-none-any.whl (11.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page