ReactJS SPA / Expressjs API, CSURF: ForbiddenError: неверный токен csrf - PullRequest
0 голосов
/ 31 мая 2019

я пытаюсь интегрировать токен csrf в мое приложение реагирования [SPA] с expressjs в качестве моего API, вот моя интеграция expressjs csurf:

...
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json());
app.use(cookieParser());
app.use(csurf({
    cookie: {
        httpOnly: true,
        domain: `${env.CLIENT_DOMAIN}`, // react-app domain
        path: '/context-csrf',
        secure: process.env.NODE_ENV === 'production',
        maxAge: 3600 // 1-hour
    }
}));
app.use(function (req, res, next) {
    res.cookie('XSRF-TOKEN', req.csrfToken());
    next();
});
app.use(expressValidator())

// here when i integrate my routes

для моего ReactApp:

axios.get('/context-csrf').then( (response) => {
  axios.defaults.headers.post['X-XSRF-TOKEN'] = response.data._csrf;
  // below line didn't work either
  // axios.defaults.headers.common['X-CSRF-TOKEN'] = response.data._csrf;
  _csrf = response.data._csrf;
});

axios.interceptors.request.use(config => {
  if(config.method === 'post') { config.data._csrf = _csrf; }
  return config;
});

и все еще получил ForbiddenError: invalid csrf token

есть идеи?

Спасибо

...