Как работать с бэкэнд-аутентификацией с помощью Express как обратного прокси-API - PullRequest
1 голос
/ 13 марта 2019

Я впервые использую экспресс в проекте как своего рода обратный прокси между моим веб-интерфейсом и внутренним интерфейсом.Бэкэнд-аутентификация основана на использовании файлов cookie.
Сначала я использовал http-proxy-middleware для выполнения своих запросов.Это работает нормально, и файл cookie передается без проблем.

Проблема заключается в том, что я хочу разделить фронт и бэкэнд, поскольку API сейчас не очень удобен (например, 3 запроса необходимы для получения данных для одногоПосмотреть).Поэтому вместо того, чтобы делать запросы напрямую, я хочу, чтобы мой экспресс-сервер обрабатывал тяжелую работу в фоновом режиме.

В настоящее время я использую axios для запросов и передаю cookie с запросом, а новый обратно с помощьюответ.Это прекрасно работает, но чувствует себя очень взломанным и подверженным ошибкам.Например, я должен очень странным образом разделить возвращенную строку setcookie.

app.get('/api/myrequest', (req, res) => {
  axios.get('backendserver/url', {
    headers: {
      Cookie: req.cookies['auth'],
    },
    responseType: 'json',
  })
  .then((response) => {
    let tempCookie = response.headers['set-cookie'][0];
    tempCookie = tempCookie.split(';')[0];
    tempCookie = tempCookie.split('=');

    res.cookie(tempCookie[0], tempCookie[1]);
    res.send(response.data);
  })
});

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

...