3

我正在创建一个支持多个域的 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将对 Facebook 进行身份验证,回调 url 转到www.webapp.com/accounts/facebook/login/callback. 在处理请求时,我可以找到适当的上下文,并重定向到webapp.yourdomain.com/accounts/facebook/login/callback将进行真正身份验证的位置(并且将设置特定于域的身份验证 cookie)。

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

4

1 回答 1

1

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

消费者密钥、令牌使用 Django 站点框架。这对于较大的多域项目特别有用,但也允许在开发(本地主机)和生产设置之间轻松切换,而不会弄乱您的设置和数据库。

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

于 2014-01-15T20:38:42.610 回答