在特定子域上共享django会话

dav*_*ola 22 django cookies session

我有example.com和support.example.com.如果用户登录主站点,我希望可以从支持站点访问该会话.

将SESSION_COOKIE_DOMAIN设置为'.example.com'并不是我想要的,因为我有许多其他带有django应用程序的子域,我希望无法访问该会话.

目前我唯一可以想象的解决方法涉及棘手的重定向,如果有必要,我想避免使用.

有没有办法做到这一点?

Flo*_*ann 27

解决方案是设置

SESSION_COOKIE_DOMAIN = '.example.com'
Run Code Online (Sandbox Code Playgroud)

重命名会话cookie的名称,如

SESSION_COOKIE_NAME = 'examplesessionid'
Run Code Online (Sandbox Code Playgroud)

在驱动这两个子域的Django实例上.这两个站点将使用具有全局范围的重命名的cookie,并且不会干扰其他Django实例,使用其各自子域上的默认"sessionid"cookie.

请注意,cookie 被发送到example.com的子域上的其他Django实例,但不会被解释为Django会话cookie.


Car*_*bés 5

我最近看到了一个类似的问题: 如何在同一个子域上获取不同的Django应用程序来共享会话cookie?

建议使用django-cas进行单独会话但单点登录(您只能登录其中一个站点).