Django_hosts不能使用Django的默认身份验证

时间:2018-02-10 14:14:01

标签: python django

我正在使用名为django_hosts的此程序包为某些应用重新路由网址。

除了django_hosts没有使用Django身份验证这一事实外,一切正常。

我托管了这个url api.example.com,所以在这个页面上有url api.example.com:8000/add_post,我希望用户添加帖子,但在此之前你必须进行身份验证。因此,在我登录后,我仍然无法通过发帖无表情地提交帖子。但是当我回到example.com时,它显示我已登录,但api.example.com正在告诉我。

如何使用此软件包进行django身份验证?

1 个答案:

答案 0 :(得分:1)

问题是身份验证令牌已挂接到域。使用Django的默认配置,api.example.com无法访问example.com身份验证令牌。

您可以通过在 settings.py 模块中设置SESSION_COOKIE_DOMAIN配置来更改此行为:

SESSION_COOKIE_DOMAIN = 'example.com'

但不要太快!仔细做,否则你可能会破坏你的申请:

  

在生产站点上更新此设置时要小心。如果你   更新此设置以在站点上启用跨域Cookie   以前使用的标准域cookie,现有的用户cookie将是   设置为旧域。这可能导致他们无法登录   只要这些饼干持续存在。

有关official documentation的更多信息。