Реагировать на аксиомы CSRF 403 ЗАПРЕЩЕНО при развертывании django в DigitalOcean - PullRequest
0 голосов
/ 07 декабря 2018

Следующие настройки создателя действий хорошо работают локально.Однако при развертывании сайта в DigitalOcean я продолжаю получать CSRF 403 FORBIDDEN и, следовательно, не могу аутентифицировать пользователя.

ERROR -> POST https://app -machinespector.com / auth / signin/ 403 (Запрещено)

Создатель действия , который аутентифицирует пользователя.Я загружаю печенье, но нигде не использую его (так как он не нужен).Это значение равно undefined ...

import axios from 'axios';
axios.defaults.xsrfCookieName = 'csrftoken';
axios.defaults.xsrfHeaderName = 'X-CSRFToken';

import { browserHistory } from 'react-router';
import cookie from 'react-cookie';


import {
  AUTH_USER,
} from './types';

# load and print cookie --> undefined
const csrftoken =  cookie.load('csrftoken');
console.log(csrftoken);

export function signinUser({email, password}){
  return function(dispatch){
    axios.post('/auth/signin/', { email, password })
      .then(response => {
        dispatch({ type: AUTH_USER });
        localStorage.setItem('token', response.data.token);
        browserHistory.push('/machines');
      })
      .catch(() =>{
        dispatch(authError('Log in credentials are invalid'));
      });
  }
}

Производственные настройки Django :

from .base import *  # noqa

DEBUG = False

# SECRET CONFIGURATION
# ------------------------------------------------------------------------------
# See: https://docs.djangoproject.com/en/dev/ref/settings/#secret-key
# Raises ImproperlyConfigured exception if DJANGO_SECRET_KEY not in os.environ
SECRET_KEY = env('DJANGO_SECRET_KEY')

# ALLOWED_HOSTS
# ------------------------------------------------------------------------------
ALLOWED_HOSTS=["app-machinespector.com", "localhost", "127.0.0.1"]

# CSRF
# -------------------------------------------------
CSRF_USE_SESSIONS = False
CSRF_COOKIE_HTTPONLY = False
CSRF_COOKIE_NAME  = 'csrftoken'
CSRF_HEADER_NAME  = 'X-CSRFToken'

# WEBPACK CONFIGURATION
# ------------------------------------------------------------------------------
WEBPACK_LOADER = {
    'DEFAULT': {
        'BUNDLE_DIR_NAME': 'bundles/prod/',  # end with slash
        'STATS_FILE': str(ROOT_DIR.path('webpack-stats-prod.json')),
    }
}

Nginx https сервер conf :

upstream app_server {
    server  django:8000 fail_timeout=0;
}

server {

    listen  443 ssl;
    server_name  app-machinespector.com www.app-machinespector.com;

    ssl_certificate  /etc/letsencrypt/live/app-machinespector.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/app-machinespector.com/privkey.pem;


    location /static/ {
        autoindex off;
        alias /var/www/static/;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app_server;
    }

}

server {

   listen  80;
   server_name  app-machinespector.com;

   return 301  https://$host$request_uri;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...