Получение Forbidden (403) CSRF-проверка не удалась

Я использую Django, DRF, docker, Nginx и AWS EC2 instance для моего личного проекта, приложение работает нормально, когда оно использует HTTP, как только я перешел на HTTPS, я получаю CSRF Verification Failed.

использовали {% csrf_token %} там, где это требовалось в html-формах

в файле settings.py

CSRF_COOKIE_SECURE = True

CSRF_TRUSTED_ORIGINS = ['http://localhost/', 'example.co.in', 'www.example.co.in']

CORS_ORIGIN_WHITELIST = ['http://localhost/', 'example.co.in', 'www.example.co.in']

Пожалуйста, помогите мне решить эту проблему, спасибо всем

Вам нужно прописать "https://" в CSRF_TRUSTED_ORIGINS и CORS_ORIGIN_WHITELIST, у вас в настройках стоит "http://" и именно поэтому с http работает, а с https нет.

Иногда это происходит из-за конфигурации Nginx, пожалуйста, проверьте конфигурацию Nginx.

Если ваш Nginx содержит следующие атрибуты, особенно prxy_set_header, который настраивает заголовки для отправки из nginx на проксируемый хост.

location / {
    proxy_pass http://IP:port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
}
Вернуться на верх