7

我想让相同的用户会话跨越:site.com
sub1.site.com
sub2.site.com

如何在 Django 中执行此操作?使用默认的 auth 用户包,它似乎要求用户每次使用不同的会话登录到所有 3 个站点。他们如何共享相同的登录 cookie 和 session-id?

更新:在 settings.py 中使用 SESSION_COOKIE_DOMAIN 值似乎适用于生产站点,但它不适用于我在 localhost/dev 服务器上。你如何让它为 localhost 子域工作?当我将 SESSION_COOKIE_DOMAIN 更改为生产网站名称或“.localhost”时,django auth 登录完全停止工作(我无法登录,没有在 localhost 上创建 cookie。)

4

1 回答 1

14

我想我有一个解决方案,但无法使用 localhost。我只能让它为映射到 127.0.0.1 的测试“.com”域工作。

在我的 /etc/hosts 文件中(在 OSX 上:)

    127.0.0.1 test.com
    127.0.0.1 sub1.test.com
    127.0.0.1 sub2.test.com

然后在我的开发settings.py上:

    SESSION_COOKIE_DOMAIN=".test.com"

我无法使用普通的“localhost”来实现它,似乎我需要其中的“.com”字符串才能让它工作。因此,我可以在浏览器中使用 sub1.test.com:8000 和 sub2.test.com:8000 登录并拥有跨子域身份验证 cookie。

于 2009-09-18T14:03:38.940 回答