python - 具有多个域的 django-allauth

标签 python django oauth-2.0 multi-tenant django-allauth

我正在创建一个支持多个域的 Web 应用程序。例如,如果我的应用名为 www.webapp.com,我还会有许多客户通过 DNS CNAME 映射将他们的域映射到我的站点,即 webapp.yourdomain.com CNAME www .webapp.comfoo.anotherdomain.com CNAME www.webapp.com 等...

我希望用户通过 Google 或 Facebook (OAuth 2.0) 针对我的应用程序进行身份验证 - 我(或域所有者)不必为每个映射域创建单独的 Google/Facebook 应用程序。理想情况下,我会让基域充当代理,并在响应回调 url 时重定向到适当的映射域。例如,访问 webapp.yourdomain.com/accounts/facebook/login 的用户将使用指向 www.webapp.com/accounts/facebook/login/callback 的回调 URL 对 Facebook 进行身份验证。在处理请求时,我可以找到适当的上下文,并重定向到 webapp.yourdomain.com/accounts/facebook/login/callback ,在那里将进行真正的身份验证(并且特定于域的身份验证 cookie 将设置)。

那么,这在 django-allauth 中可行吗?它需要多少黑客攻击?或者,是否有另一种 Django 社交身份验证解决方案更容易在其中实现?

最佳答案

您应该将 Django 站点框架与 django-allauth 一起使用。

Consumer keys, tokens make use of the Django sites framework. This is especially helpful for larger multi-domain projects, but also allows for for easy switching between a development (localhost) and production setup without messing with your settings and database.

只需在管理后台配置每个社交应用。

关于python - 具有多个域的 django-allauth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937402/

相关文章:

python - kivy python 小部件实例或所有小部件

python - Pygame 和多处理策略

c# - 如何使用刷新 token 更新访问 token ?

Python 属性 : Inheriting from class which values have default values raises error

python - Bottle 的 jsonify/pretty-print JSON

python - 如何在没有任何形式的情况下验证 Django 模型的构造函数参数?

c# - Google OAuth2 服务帐户访问 token 请求提供 'Invalid Request' 响应

oauth - 如何在 postman 收藏中保留OAuth2 token (或使用刷新 token )?

python - Django 和根进程

django - 自定义 Django 404 错误