Я впервые использую экспресс в проекте как своего рода обратный прокси между моим веб-интерфейсом и внутренним интерфейсом.Бэкэнд-аутентификация основана на использовании файлов 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, но не уверен, подходит ли он этому особому варианту использования, так как аутентификация не обрабатывается выражением себя.
Может быть, кто-то может указать мне правильное направление?