2016-12-27 23 views
1

私はDjango Adminにログインしようとしているとき、またはDjangoアプリケーションにサインアップしようとするときはいつでもこのエラーが出ます。Django: "禁止(403)CSRF検証に失敗しました。要求が中止されました。"ドッカープロダクションで

私はDockerでの生産を使用しており、httpでサイトを提供しています。 私が知っているものは、httpsの代わりにhttpを超えて扱うため、この問題が発生します。

は、ここに私の生産settings.pyです:

SECURE_HSTS_SECONDS = 518400 
SECURE_HSTS_INCLUDE_SUBDOMAINS = env.bool('DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS', default=True) 
SECURE_CONTENT_TYPE_NOSNIFF = env.bool('DJANGO_SECURE_CONTENT_TYPE_NOSNIFF', default=True) 
# SECURE_BROWSER_XSS_FILTER = True 
SESSION_COOKIE_SECURE = False 
SESSION_COOKIE_HTTPONLY = True 
SECURE_SSL_REDIRECT = env.bool('DJANGO_SECURE_SSL_REDIRECT', default=False) 
CSRF_COOKIE_SECURE = False 
CSRF_COOKIE_HTTPONLY = True 
X_FRAME_OPTIONS = 'DENY' 

私はそれを動作させるには、この設定に何らかの変更を加える必要が知っているが、私はどちらを知りません。

答えて

0

this questionからの回答を試してみてください。

あなたの形でそのような

https://docs.djangoproject.com/en/1.4/ref/contrib/csrf/

を{%csrf_token%}を追加する必要があります。

<form> 
    {% csrf_token %} 
    <anything_else> 
</form> 

はまた、あなたがする必要はありrender_to_responseを使用するたびにRequestContext(request)を使用:

return render_to_response("login.html", 
    {"registration_id":registration_id}, 
    context_instance=RequestContext(request)) 

そして、あなたは認証とログインをインポートする必要があります。

from django.contrib.auth import authenticate, login 
+0

私の問題は、私のサイトはhttps' '上でうまく機能しているが、私はそれを提供する場合、この問題が発生している、{%csrf_token%}とではありません'http'を使って –

関連する問題