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.4.tar.gz (10.4 kB view details)

Uploaded Source

File details

Details for the file aiohttp_ext.auth-0.1.4.tar.gz.

File metadata

  • Download URL: aiohttp_ext.auth-0.1.4.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for aiohttp_ext.auth-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9554c1adcded1986aa81d09cbd6a94d59c806cdfa918fe542f9f22e827a39df7
MD5 7af861913be2083b9881b40474f1e64f
BLAKE2b-256 b53c52083e698db6716e614be959e7d3816b1ed6f9fca7834481e5a8cd7b7270

See more details on using hashes here.

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