Запрет предполетного запроса от внутреннего перенаправления - PullRequest
1 голос
/ 24 сентября 2019

Я работаю над веб-приложением, и внутренний, и внешний интерфейсы размещаются на разных конечных точках внутреннего PaaS, который перенаправляет на страницу единого входа, если какой-либо запрос, поступающий на него, не имеет аутентифицированного cookie.

Когда я отправляю запрос GET от внешнего интерфейса к внутреннему, он также проходит через cookie-файлы (с учетными данными в axios).Но когда я делаю POST-запрос, браузер сначала делает предварительный запрос OPTIONS без cookie, а внутренняя служба бэкэнда перенаправляется на SSO, в результате чего он вообще никогда не отправляет POST-запрос.

Preflightзапрос по дизайну исключить учетные данные пользователя, как я могу обойти это?

1 Ответ

1 голос
/ 24 сентября 2019

Напишите промежуточное программное обеспечение в своем бэкэнде, вершина в иерархии и проверьте тип запроса в нем.

, если это «ОПЦИИ», просто проверьте источник, если он знаком, ответьте сразу с 200 вместопередать управление следующему, если нет, то ответить 403

, если это не «OPTIONS», просто передать управление следующему, чтобы оно действовало соответственно

, предполагая сервер экспресс-узла,промежуточное программное обеспечение будет выглядеть следующим образом

app.use((req,res,next)=>{
  if(req.method==='OPTIONS' && whiteListUrls.includes(req.origin)){
    res.status(200);
  }else{
    next();
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...