如何在新添加的子域中共享Django会话

时间:2018-04-14 20:33:02

标签: django django-sessions

我最近在我的django网站上添加了一些新的子域名(例如x.example.com)(所有这些都在同一个应用程序下),我希望用户能够在这些子域名中保持登录状态。< / p>

根据Django docs,我可以将SESSION_COOKIE_DOMAIN设置为".example.com"来执行此操作,但文档提及此警告:

  

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

鉴于我目前正在使用标准域名Cookie,这当然适用于我!但是,文档没有解决方案。

如何在不弄乱现有用户的情况下将SESSION_COOKIE_DOMAIN切换为跨域?会话(理想情况下,不强制他们退出)?

1 个答案:

答案 0 :(得分:0)

要正常更改SESSION_COOKIE_DOMAIN,而又不影响现有用户,可以将SESSION_COOKIE_NAME更改为新名称。默认情况下,它设置为sessionid。如果您将其设置为newsessionid之类的其他名称,则所有现有用户都必须重新登录,因为新的cookie将不会出现在他们的请求中。

在Django文档SESSION_COOKIE_NAME中了解有关此内容的更多信息。