python - 如何在同一子域上获取不同的 Django 应用程序以共享 session cookie?

标签 python django deployment session cookies

我们在同一个子域上部署了几个 Django 应用程序。一些高级用户需要在这些应用程序之间跳转。我注意到每次它们在应用程序之间反弹时,它们的 session cookie 都会从 Django 接收一个新的 session ID。

除了在一个复杂的工作流程中,我很少使用 Django session 表。如果用户在此工作流中在应用程序之间跳转,他们将失去 session 并必须重新开始。

我仔细研究了 Django session 代码,发现:

django.conf.settings.SECRET_KEY

用于对每个请求的 session 执行完整性检查。如果完整性检查失败,则创建一个新 session 。意识到这一点后,我更改了每个应用程序中的 key 以使用相同的值,认为这将允许完整性检查通过并允许它们共享 Django session 。但是,它似乎没有用。

有没有办法做到这一点?我还缺少其他东西吗?

提前致谢

最佳答案

我建议您为这两个应用程序将 SESSION_COOKIE_NAME 设置为不同值。您的用户最初仍需要登录两次,但他们的 session 不会发生冲突 - 如果他们登录到应用 A,然后登录应用 B,然后返回到 A,他们仍将拥有他们的 A session 。

在 Django 实例之间共享 session 可能不是一个好主意。如果您想要某种单点登录,请查看类似 django-cas 的东西。您仍然会有 2 个 session (正如您应该的那样),但用户只会登录一次。

关于python - 如何在同一子域上获取不同的 Django 应用程序以共享 session cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/556907/

相关文章:

python - Django 在管理中的内联之间切换

python - 操作图像中的 RGB 值

django - Heroku 是否剥离传入的 X-Forwarded-Proto header ?

python - 将 Django 从 1.1 升级到 1.2

java - Tomcat 部署从单个 war 文件创建 2 个文件夹?

python - subprocess.check_output 忽略 euid

python - 在 Python 脚本中重试用户输入

python - Firebase python admin sdk isNewUser ()

java - Hibernate 单文件数据库 : setup for thin client

deployment - 无法识别 Catalyst 应用程序 info.plist