每当我尝试登录Django Admin或每次尝试在Django应用程序中注册时,都会收到此错误。
我在Docker中使用Production并使用http
提供站点服务。
无论我知道什么,都会出现此问题,因为通过http
代替https
提供此问题。
这是我的生产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 :(得分:0)
尝试this question的答案:
您需要在表单中添加{%csrf_token%}
https://docs.djangoproject.com/en/1.4/ref/contrib/csrf/
像那样:<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