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

问题描述 投票:1回答:1

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

根据Django docs,我可以简单地将SESSION_COOKIE_DOMAIN设置设置为".example.com"来做到这一点,但是文档中提到了此警告:

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

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

如何在不破坏现有用户会话的情况下(最好是不强迫他们注销)如何将SESSION_COOKIE_DOMAIN切换为跨域?

django django-sessions
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.