【发布时间】:2016-01-29 13:19:14
【问题描述】:
我正在开发一个 django 项目,几天后 django 在我更改源文件后不断记录我。
cookies 和数据库中的过期日期显示还有 1 个月。
即使在进行更改后,会话 cookie 与数据库中的相同,但我必须再次登录。并在登录两个 sessionids(数据库和浏览器)后更改。
我正在使用 django 1.8.5
编辑: 一些会话相关设置:
SESSION_EXPIRE_AT_BROWSER_CLOSE False
SESSION_COOKIE_HTTPONLY True
SESSION_COOKIE_DOMAIN None
SESSION_SAVE_EVERY_REQUEST False
SESSION_COOKIE_SECURE False
编辑2:
为了更清楚一点:更改一些源文件(python 文件,模板工作正常)后,服务器将重新加载(如果我使用 --noreload,我必须手动执行以获取更改),之后每个人都已注销。
编辑3:
CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
SESSION_ENGINE 'django.contrib.sessions.backends.db'
【问题讨论】:
-
我猜这个问题是在你没有持久会话存储时出现的。并且默认情况下 django 确实有它。
-
我正在与一个团队合作,通过 git 进行版本控制 - 我们 4 人中有 2 人受此影响。从一开始就是我们中的一个(但似乎并没有打扰他),我从几周前就受到了影响。正如您在我在顶部的帖子中看到的那样,
expire_at_browser_close是错误的,这应该(根据 django api)足以用于持久会话。进一步设置:SESSION_ENGINE 'django.contrib.sessions.backends.db' -
请向我们展示您的
SESSION_ENGINE和CACHES设置。 -
SESSION_ENGINE如上所述是'django.contrib.sessions.backends.db'和CACHES是{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}但我已经尝试过其他人,它不会改变任何东西