Django forbidden 403 Origin checking failed csrf failed
Я запускаю django на машине docker. Все работает отлично, но когда я хочу войти на сайт администратора, я получаю 403 forbidden
Origin checking failed - https://example.com does not match any trusted origins.
Я пытался добавить некоторые другие настройки, такие как:
ALLOWED_HOSTS = [
"example.com",
"127.0.0.1",
"localhost",
]
CSRF_TRUSTED_ORIGIN = ["https://example.com"]
if PRODUCTION:
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
как указано здесь и здесь, но и это не работает.
Вот моя установка nginx:
server {
server_name example.com;
location = /favicon.ico {
access_log off;
log_not_found off;
}
location /static/ {
alias /home/example/data/static/;
}
location /media/ {
alias /home/example/data/media/;
}
location / {
proxy_pass http://127.0.0.1:8000;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
как исправить эту ошибку?
Мне удалось исправить эту ошибку, добавив:
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
в настройках django и
include proxy_params;
войти в конфигурацию nginx
Вам стоит попробовать: CSRF_TRUSTED_ORIGINS = ["https://example.com"]
Перед этим введите CSRF_TRUSTED_ORIGIN = ["https://example.com"]
Может быть, это поможет вам.