Пользователи и авторизация
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aiohttp_ext.auth-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22722e122b4343e3b8bb21fe57e3b7b2d03a75c506fadb5c67bd4795f2314ad7 |
|
MD5 | c96acaf007b5f454d39b34772dd0e279 |
|
BLAKE2b-256 | 277e23ba36e6fbd45875308189373ac0411ae9317d0f45b4e563ff8741b59878 |