我正在创建一个web应用程序,它将支持多个域。例如,如果我的应用程序名为www.webapp.com
,我还会有许多客户通过DNS CNAME映射将他们的域映射到我的站点,例如webapp.yourdomain.com CNAME www.webapp.com
和foo.anotherdomain.com CNAME www.webapp.com
等等.
我希望用户通过谷歌或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
(并且将设置特定于域的auth )。
那么,这在django-allauth可行吗?这需要多少黑客?或者,Django是否有另一个更容易在其中实现的社会身份验证解决方案?
发布于 2014-01-15 20:38:42
您应该与django-allauth一起使用Django站点框架。
使用者密钥、令牌使用Django站点框架。这对于较大的多域项目尤其有用,但也允许在开发(localhost)和生产设置之间进行轻松的切换,而不影响您的设置和数据库。
只需在管理后端配置每个社交应用程序即可。
https://stackoverflow.com/questions/19937402
复制相似问题