semvec/pypi-packages huggingface dataset:
aiohttp-ext.auth 0.1.4
Пользователи и авторизация
License: BSD

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