Включить 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.