8

我已经开始了新的 django 项目并启用了管理应用程序。我可以登录到管理站点,但是当我尝试添加/更改站点或用户时,我得到了

CSRF verification failed. Request aborted.
Reason given for failure:
CSRF token missing or incorrect.

这就是我在 settings.py 中的内容:

TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)

当我查看管理页面源时,我看到

<input type='hidden' name='csrfmiddlewaretoken' value='T9Mfk1LRXi5jPE2dh5jcvdKwzYM6Iy5I' />

那里

我有 Django 版本 1.4.1

4

2 回答 2

9

您是否覆盖了 CSRF_COOKIE_DOMAIN 设置?如果表单中存在 CSRF 令牌,并且您没有修改管理应用程序的源,那么最有可能的情况是 cookie 设置不正确。

检查登录页面的响应标头以确保 cookie 设置正确,并检查您的登录尝试的请求标头以确保它也被发送(并且与表单中的值匹配)。

于 2012-10-03T16:11:07.393 回答
0

在本地,我有一个项目,CRSF 在浏览时工作正常, http://localhost:8040/my-admin/但在http://127.0.0.1:8040/my-admin/.

我不知道为什么,但这可能有助于节省一些时间。

注意:我没有设置CSRF_COOKIE_DOMAIN.

于 2017-08-11T01:31:15.740 回答