使用django-allauth启用OAuth登录,但使用自定义提供商。

16

我使用了 django-oauth-toolkit 来构建 OAuth 服务提供者。

现在我想让我的客户端应用程序的用户通过这个提供者进行登录。

我了解到django-allauth 是实现这一目的的理想工具。

我发现 django-allauth 有一个专门为每个提供者创建的文件夹,其中包含一个名为provider.py的特殊文件。例如,这是 github 提供者的文件夹。

我是否应该创建类似于此文件夹的东西,专门针对我的自定义提供者?或者有更简单/更好的方法来完成这个任务吗?


你好!我刚开始一个新项目,遇到了类似的问题,我想使用django-oauth-toolkit作为提供者和django-allauth作为消费者。你有找到任何关于这方面的教程或文档吗? - Norak
不好意思,没有。 - Brachamul
无论如何,感谢您的回复。 - Norak
@Brachamul,你找到Django OAuth客户端的解决方案了吗? - Symon
1
https://github.com/raphaelyancey/django-oauth2-example - teury diaz
2个回答

10

9
根据文档所说,它会基于INSTALLED_APPS发现新的提供商。因此,您需要一个具有相同结构并包含providers.py的Django应用程序。因此,您应该能够使用新的应用程序或现有应用程序。
这是来自文档的内容:
当现有提供商不能完全满足您的需求时,您可能需要自定义提供商。可以通过对现有提供商进行子类化并在其中进行更改来实现此目的。提供商被定义为Django应用程序,因此通常自定义一个提供商将意味着在项目中创建一个Django应用程序,其中包含自定义的urls.py、views.py和provider.py文件。文档范围内没有涵盖您可以自定义哪些行为。
另外,关于providers.py文件的内容的说明:
在您的provider.py文件中,您需要通过使用名为provider_classes的模块级属性公开提供程序类,其中包含列表中的自定义类。这样可以根据INSTALLED_APPS设置正确注册您的自定义提供程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接