Включить oauth-вход в систему с помощью django-allauth, но с помощью специального провайдера

Я построил oauth-провайдер, используя https://github.com/evonove/django-oauth-toolkit.

Теперь я хотел бы разрешить пользователям моего клиентского приложения входить через этого провайдера.

Насколько я понимаю, Джанго-Аллах является идеальным инструментом для этого.

Я вижу, что у django-allauth есть специальная папка для каждого провайдера, и в этой папке есть специальные файлы, называемые provider.py, Например, это папка для провайдера github.

Должен ли я создавать что-то похожее на эту папку, специально для моего провайдера? Или есть более простой / лучший способ сделать это?

1 ответ

Это интересная статья, которая объясняет эту тему:

Основываясь на том, что говорится в документации, он обнаруживает новых провайдеров на основе INSTALLED_APPS, Таким образом, вам понадобится приложение Django, которое имеет ту же структуру, да и включает в себя providers.py, Таким образом, вы должны иметь возможность использовать новое приложение или существующее.

Это из документов:

Если существующий поставщик не совсем соответствует вашим потребностям, вам может потребоваться настроить поставщика.

Это может быть достигнуто путем создания подкласса существующего провайдера и внесения в него изменений. Поставщики определяются как приложения django, поэтому, как правило, настройка одного из них будет означать создание приложения django в вашем проекте, содержащем ваши настроенные файлы urls.py, views.py и provider.py. Какое поведение вы можете настроить, выходит за рамки этой документации.

Кроме того, примечание о содержании providers.py файл:

В вашем файле provider.py вам нужно будет предоставить класс провайдера, указав атрибут уровня модуля provider_classes с вашими пользовательскими классами в списке. Это позволяет вашему обычному провайдеру быть зарегистрированным должным образом на основе установки INSTALLED_APPS.

Другие вопросы по тегам