Следующие настройки создателя действий хорошо работают локально.Однако при развертывании сайта в 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;
}