Django无法捕获/处理csrf令牌

时间:2015-10-05 16:43:57

标签: python django csrf django-allauth

我有一个之前有效的页面,遗憾的是我没有最近的备份,所以我可以回到最近工作的页面版本。

我所拥有的是一个使用allauth处理页面以创建和登录用户的页面。但是,现在当我填写表单以注册或登录用户时,我得到一个403 error,说CSRF verification failed. Request aborted

我检查了网页的Cookie,并且有一个csrf token。我尝试删除它并重新加载页面。 Cookie再次重新创建,但仍然是同样的错误。登录admin页面也会出现同样的错误,我只能假设其他任何页面都有form

我已将django.middleware.csrf.CsrfViewMiddleware添加到我的设置文件中,因此我不知道导致此错误的原因。

我的settings.py

import os, djcelery
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

SECRET_KEY = censored...
DEBUG = False
ALLOWED_HOSTS = ['0.0.0.0', '127.0.0.1', 'localhost']

# Application definition
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.sites',
    'django.contrib.staticfiles',
    'interface',
    'chemrun',
    'kombu.transport.django',
    'chemicalizer.tasks',
    'json',
    'django_nvd3',
    'djangobower',
    'allauth',
    'allauth.account',
    'djangosecure',
)

MIDDLEWARE_CLASSES = (
    'djangosecure.middleware.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)   

ROOT_URLCONF = 'chemicalizer.urls'

TEMPLATES = [
    {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': ['interface'],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.i18n',
            'django.template.context_processors.media',
            'django.template.context_processors.static',
            'django.template.context_processors.tz',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
    },
]  

1 个答案:

答案 0 :(得分:0)

看起来你的代码没有发回CSRF令牌。它需要添加到标题中。