나는이 질문에 다음과 같이 권장합니다 : What's the best solution for OpenID with Django? 및 django-openid-auth
을 내 응용 프로그램에 설치했습니다.django-open-id : CSRF 확인에 실패했습니다.
하지만 난 그냥 내가 로그인을 시도 할 때, 난 항상 CSRF verification failed. Request aborted.
를 얻을 작업을 얻을 수
내가 체크 한 모든 :.
{% csrf_token %}
을 템플릿에 있음 :
<form name="fopenid" action="{{ action }}" method="post">
{% csrf_token %}
<fieldset>
<legend>Sign In Using Your OpenID</legend>
<div class="form-row">
<label for="id_openid_identifier">OpenID:</label><br />
{{ form.openid_identifier }}
</div>
<div class="submit-row ">
<input name="bsignin" type="submit" value="Log in">
</div>
{% if next %}
<input type="hidden" name="next" value="{{ next }}" />
{% endif %}
</fieldset>
</form>
views.py에서 363,210
2.
나는 그들이 RequestContext
를 사용하는 것이 발견 django_openid_auth
의 내부 :
return render_to_response(template_name, {
'form': login_form,
redirect_field_name: redirect_to
}, context_instance=RequestContext(request))
3.
내 MIDDLEWARE_CLASSES
포함 않습니다 CsrfViewMiddleware
:
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',
)
나는 그 밖의 무엇이 잘못 될 수 있는지 이해할 수 없다. 아이디어가 있습니까?
저는 장고 1.3 베타를 사용하고 있습니다.
UPDATE
이 내 글로벌 문제가 될 것으로 보인다. 나는 간단한 양식을 작성 동일한 결과를 가지고 :
def index(request):
return render_to_response('index.html',
locals(),
context_instance=RequestContext(request))
index.html을 :
<form action="/" method="post">
{% csrf_token %}
<input type="text" name="test">
<input type="submit">
</form>
렌더링 된 HTML : 잘못 무엇
<form action="/" method="post">
<div style="display:none"><input type="hidden" name="csrfmiddlewaretoken" value="1fbd5345560d325bf05809260f7d43c3"></div>
<input type="text" name="test">
<input type="submit">
</form>
!?