【发布时间】:2021-04-03 09:27:12
【问题描述】:
这可能不是一个很好的 stackoverflow 问题,因为我很迷茫,我认为我的问题看起来好像我没有做出任何努力。
我想从 Xero 获取用户的电子邮件,Xero 是一个专门允许这样做的云会计应用程序 (https://developer.xero.com/documentation/oauth2/sign-in)
当我创建一个 Xero“应用程序”来获取必要的凭据时,我需要提供一个 OAuth 2.0 重定向 URI,我认为这对于 oauth2 身份验证来说是非常常见甚至通用的。 我看不到如何将此 URL 提供给后端配置(BaseOAuth2 的子类)的示例。除了作为重定向 URL 之外,它还必须在 AUTHORIZATION_URL 中提供。
我已经阅读了很多教程。我找不到任何关于添加自定义 oauth2 后端的信息,但在本教程中有 GitHub 和 Twitter 的示例:
https://simpleisbetterthancomplex.com/tutorial/2016/10/24/how-to-add-social-login-to-django.html
在这两种情况下,本教程都要求在身份验证器端定义应用程序时提供形式为 http://localhost:8000/oauth/complete/twitter/ 的回调 URL。
这是一个硬编码的、未记录的默认值吗?还是我需要在我的配置中的某个地方定义它?在本教程中,我在 github.py 或 twitter.py 的后端代码中看不到任何对回调 url 的引用。
所以我迷路了,因为我不知道我的 Django 应用程序处理来自 Xero 的重定向,如果我不告诉它重定向 URL 将是什么,而且我不知道自定义后端如何优雅地创建一个有效的auth URL,因为它需要提供重定向 URL。我找不到我能理解的文档,也无法从源代码中解决。
【问题讨论】:
-
教程中提供了回调地址,即
urls.py文件中的url(r'^oauth/', include('social_django.urls', namespace='social')),行。此端点包含与 Github、Twitter 或任何其他服务相关的所有这些回调 URL。