django-allauth有多个域名

时间:2013-11-12 18:45:19

标签: 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等等。< / p>

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

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

1 个答案:

答案 0 :(得分:1)

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

  

使用者密钥,令牌使用Django站点框架。这是   特别有助于更大的多域项目,但也允许   用于在开发(localhost)和。之间轻松切换   生产设置,不会弄乱您的设置和数据库。

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