Я пытаюсь использовать запрос для вызова API на устройстве Fortigate.Метод входа в систему состоит в том, чтобы выполнить POST против /logincheck
с учетными данными, а затем использовать файлы cookie ответа для последующих вызовов API.
Эта часть работает нормально, и я получаю файлы cookie.Однако я не вижу заголовок Cookie, когда я выполняю второй вызов, а cookieJar выглядит пустым.
Вот код:
const config = require('./config/config');
const request = require('request');
var url = `${config.fortigate.adminURL}/logincheck`;
var cookieJar = request.jar();
request.post(
{
url : url,
headers : {
"Accept": "application/json"
},
form: {
username: config.fortigate.user,
secretkey: config.fortigate.password
},
jar: cookieJar
},
function (error, response, body) {
url = `${config.fortigate.adminURL}/api/v2/monitor/router/ipv4/`;
request({
url : url,
headers : {
"Accept": "application/json"
},
jar: cookieJar
},
function (error, response, body) {
console.log(response.request.headers);
console.log(response.statusCode);
console.log(cookieJar);
});
}
);
Вывод приведенных ниже команд console.log:
Headers: { Accept: 'application/json' }
Status code: 401
RequestJar {
_jar:
CookieJar {
enableLooseMode: true,
store: { idx: { '192.168.1.99': { '/': {} } } } } }
Я прочитал руководство здесь https://github.com/request/request, но все еще не могу заставить его работать.
Также нашел другой пост, в котором есть решение, но другоелюди также имеют проблемы с ним: Как поддерживать сеанс запроса в NodeJS
Конечно, я что-то пропустил, но что?Есть идеи?
Обновление
Срок действия файлов cookie истекает с 1969 года. Может быть, файл cookie не сохраняется в памяти файлов cookie между запросами?
Cookie="APSCOOKIE_2739400828="0%260"; Expires=Fri, 09 May 1969 12:47:54 GMT; Path=/; Secure; SameSite=Strict; hostOnly=true; aAge=6ms; cAge=6ms"