Я работаю над созданием API REST Node.js с использованием модуля Express, который перенаправляет запросы HTTP GET и PUT на другой сервер. Однако при выполнении тестовых запросов в Postman я всегда получаю HTTP 401 неавторизованные ответы. Тем не менее, когда я пытаюсь сделать то же самое при запросе в браузере Chrome, я получаю успешный ответ (HTTP 302). Я прочитал некоторую документацию по циклу запросов / ответов HTTP и авторизации. Сервер, на который я перенаправляю, использует HTTP-аутентификацию Basic. В моем коде я перенаправляю вызов API на сервер приложений, используя метод res.redirect (сервер). В своем запросе почтальона я задаю имя пользователя / пароль на вкладке Авторизация для моего запроса. Я знаю, что это кодируется с использованием base64, но я предполагаю, что это не передается на редирект, когда это делается через Почтальон.
Следующие фрагменты кода показывают, что я создал до сих пор.
Это экспресс-маршрут, который я создал для запросов GET
app.get('/companyrecords/:name', function(req, res) {
var credentials = Buffer.from("username:password").toString('base64');
console.log(req);
var requestURL = helperFunctions.createURL(req);
res.redirect(requestURL);
});
Я определяю функцию createURL внутри файла с именем helperFunctions. Назначение этой функции - настроить URL, на который будут направлены запросы. Вот код этой функции.
module.exports.createURL = function (requestURL) {
var pathname = requestURL._parsedUrl.pathname;
var tablename = pathname.split("/")[1];
var filter = `?&filter=name=\'${requestURL.params.hostname}\'`;
var fullPath = BASE_URL + tablename.concat('/') + filter;
console.log(fullPath);
return fullPath;
}
Где BASE_URL - константа, определенная в следующем виде:
http://hostname:port/path/to/resource/
Это то, что мне нужно изменить в своем коде для поддержки перенаправлений через Postman, или есть настройка в Postman, которую мне нужно изменить, чтобы мои запросы могли успешно выполняться.