【问题标题】:Django Admin Keeps Logging me OutDjango 管理员不断让我退出
【发布时间】:2017-11-23 11:18:00
【问题描述】:

我正在使用开发服务器,在/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

【问题讨论】:

    标签: javascript python django cookies


    【解决方案1】:

    找到了。

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

    SESSION_COOKIE_NAME 更改为'tokenname_sessionid'

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

    【讨论】:

      【解决方案2】:

      我最近也遇到了这个问题,但原因与接受的答案中建议的不同。我花了 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中重建应用程序,每次都会生成一个新的secret。

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

      参考资料:

      【讨论】:

      • 我之前做了一些纠正。我使用了一个 docker 入口点来检查一个容量化的配置文件,如果它不存在,我为持久化的配置文件生成了盐:github.com/lagtv/lagtv/blob/…
      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 2016-08-06
      • 1970-01-01
      • 2010-10-12
      相关资源
      最近更新 更多