Django管理员继续记录我

时间:2017-06-20 19:01:10

标签: javascript python django cookies

我正在使用开发服务器,登录/admin/,这很有效。然后我可以点击管理项目,例如组:/admin/auth/group/。然后我在JavaScript控制台中看到:

Uncaught SyntaxError: Unexpected token <

这来自:

?next=/admin/jsi18n/:1

在网络标签中,我看到/admin/jsi18n/的请求状态代码为302,由于某种原因已被重定向,并显示请求Cookie(显示有效)和响应Cookie(现在空)。

我在这里做错了什么?

以下是我的settings.py个Cookie变量:

CSRF_COOKIE_NAME = 'tokenname_csrftoken'
CSRF_COOKIE_SECURE = False
CSRF_HEADER_NAME = CSRF_COOKIE_NAME
SESSION_COOKIE_NAME = CSRF_COOKIE_NAME
SESSION_COOKIE_SECURE = False

2 个答案:

答案 0 :(得分:1)

我最近也遇到了这个问题,但原因与接受的答案中所建议的原因不同。我花了2天的时间解决了这个问题,希望这对遇到类似问题的人有所帮助。

我以这种方式设置了SECRET_KEY

from django.core.management.utils import get_random_secret_key

SECRET_KEY = os.getenv('APP_SECRET_KEY', default=get_random_secret_key())

并且,由于未设置APP_SECRET_KEY环境变量,并且由于我正在docker中重建应用程序,因此每次都会生成一个新的秘密。

解决方案::确保您的密钥不会更改,因为它会影响Django会话验证。

参考:

答案 1 :(得分:0)

找到它。

所有Cookie名称都必须是唯一的。理所当然。

SESSION_COOKIE_NAME更改为'tokenname_sessionid'

https://docs.djangoproject.com/en/1.11/ref/settings/#csrf-cookie-name