2016-12-27 5 views
1

장고 관리자로 로그인하려고 할 때마다 또는 내 장고 응용 프로그램에 등록하려고 할 때마다이 오류가 발생합니다.Django : "금지 (403) CSRF 확인에 실패했습니다. 요청이 중단되었습니다." in Docker Production

나는 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 (요청) 사용 :

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

그리고 당신은 인증합니다을 가져 로그인해야합니다 :

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

내 문제는 {%가 csrf_token %}, 내 사이트가 https''을 통해 잘 작동하지하지만 난 그것을 제공하는 경우에만이 문제가 발생 'http'를 사용하여 –