Django - jeton CSRF manquantes ou incorrectes
Je viens de mettre à jour mon django à 1.4. Mais je reçois le message d'erreur suivant lorsque j'essaie d'envoyer mon formulaire de connexion:
Interdit (403)
CSRF échec de la vérification. Demande abandonnée.
Raison de l'échec:
Jeton CSRF manquant ou incorrect.
Dans mon settings.py (MIDDLEWARE_CLASSES), j'ai dû supprimer la ligne suivante en raison de son désormais obsolète:
'django.middleware.csrf.CsrfResponseMiddleware',
Et que j'ai commencé à obtenir cette erreur.
Certaines informations nécessaires:
Urls.py
url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'registration/login.html'}, name='login')
MIDDLEWARE_CLASSES = (
'django.middleware.gzip.GZipMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# 'django.middleware.csrf.CsrfResponseMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
)
login.html
{% extends "base.html" %}
{% block title %} Login {% endblock %}
{% block content %}
<div id="text">
<table>
<form action="" method="post">
{% csrf_token %}
<tr>
<td><label for="username">Email:</label></td>
<td><input type="text" name="username" value="" id="username"></td>
</tr>
<tr>
<td><label for="password">Password:</label></td>
<td><input type="password" name="password" value="" id="password"></td>
</tr>
<tr>
<td><input type="submit" value="Login" />
{% if next %}
<input type="hidden" name="next" value="{{ next }}" /></td>
{% else %}
<input type="hidden" name="next" value="/" /></td>
{% endif %}
</tr>
</form>
</table>
{% if form.errors %}
<p class="error">User or password incorrect</p>
{% endif %}
</div>
{% endblock %}
Personne ne sait comment résoudre ce problème?
OriginalL'auteur Thomas | 2012-04-07
Vous devez vous connecter pour publier un commentaire.
Le code a l'air bien, Django 1.3 et 1.4 auth.les vues.connexion utilise RequestContext correctement. Veuillez vérifier:
OriginalL'auteur okm
OriginalL'auteur Jason Adleberg
J'ai eu le même problème lorsque mon application a été déployée sur HTTPS. J'ai dû changer de paramètre d'indicateur de CSRF_COOKIE_HTTPONLY false serveur client peut accéder à csrf cookie.
OriginalL'auteur WEBBYFOX