Я новичок в node.js, но у меня есть пример приложения, написанного для node.js, в котором показан способ интеграции с конкретным провайдером идентификации (SAML).Используя этот пример приложения, я пытаюсь проверить, что отправляется в HTTP-запросах, сделанных из серверной части node.js в удаленный IdP.Для меня будет достаточно регистрации заголовков и тела запроса путем записи в console.log.Мониторинг сетевого трафика с помощью какого-либо инструмента, такого как Fiddler, для меня не вариант, потому что я не могу запустить его локально, мне нужно открыть приложение и развернуть его в Heroku.
Я пробовал morgan,но он только перехватывает ВХОДЯЩИЕ запросы.Я также попробовал global-request-logger, но по какой-то причине он не внедряется в экспресс-каркас и паспорт.Похоже, что в паспорте не используются стандартные модули для HTTP-запросов?
Вопрос в том, что мне нужно использовать, чтобы регистрировать содержимое HTTP-запросов, сделанных паспортом во время вызова .authenticate ()?Есть ли какой-либо флаг, который я могу установить в паспорте, чтобы включить ведение журнала HTTP?Или мне лучше сделать это в экспрессе?Или, может быть, какой-то другой пакет предоставит мне необходимую функциональность?
РЕДАКТИРОВАТЬ: мой первоначальный вопрос был помечен как возможный дубликат как протоколировать ВЫХОДНЫЕ запросы https от узла в веб-шторме
Но на самом деле я уже видел эту тему и пытался настроить хук на модуль http, это было сделано следующим образом:
'use strict';
// Setup express.js application:
var express = require('express');
var app = express();
// Patch "http" module with outgoing request logging:
var http = require('http');
const originalRequest = http.request;
http.request = function wrapMethodRequest(req) {
console.log('EXTERNAL OUTGOING REQUEST LOGGING:');
console.log(req.host, req.body);
return originalRequest.apply(this, arguments);
}
Этот подход не работал.Как уже говорилось в оригинальном вопросе, кажется, что в паспорте не используется стандартный модуль http?Или я что-то не так с кодом выше?Как уже упоминалось в первоначальном вопросе, я также пытался обработать его с помощью пакета global-request-logger (который, как объяснено в возможном дублированном посте, использует ту же технику).Код для этого был:
'use strict';
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var passport = require('passport');
var SamlStrategy = require('passport-saml').Strategy;
app.use(bodyParser.urlencoded({ extended: false }));
var globalLog = require('global-request-logger');
globalLog.initialize();
globalLog.on('success', (req, res) => {
console.log('HTTP(S) CALLOUT SUCCESS');
console.log('REQUEST: ', req);
console.log('RESPONSE: ', res);
});
globalLog.on('error', (req, res) => {
console.log('HTTP(S) CALLOUT ERROR');
console.log('REQUEST: ', req);
console.log('RESPONSE: ', res);
});
...