Мне нужно необработанное тело запроса, чтобы иметь возможность переваривать его SHA-1 для проверки заголовка веб-перехватчика Facebook X-Hub-Signature, который передается вместе с запросом к моей функции Firebase (работающей в Google Cloud Functions).
Проблема в том, что в подобных случаях (с заголовком Content-Type: application/json
) GCF автоматически анализирует тело, используя bodyParser.json()
, который потребляет данные из потока (что означает, что он не может быть снова использован в цепочке промежуточного программного обеспечения Express) и предоставляет только проанализированный объект javascript как req.body
. Буфер необработанного запроса отбрасывается.
Я попытался предоставить приложение Express для functions.https.onRequest()
, но похоже, что оно запускается как дочернее приложение или что-то в этом роде с уже проанализированным телом запроса, точно так же, как когда вы передаете простой обратный вызов запроса-ответа в onRequest()
.
Есть ли способ отключить GCF от парсинга тела за меня? Или я мог бы как-то указать свой собственный verify
обратный вызов bodyParser.json()
? Или есть другой способ?
PS: Я впервые обратился в службу поддержки Firebase по этому поводу неделю назад, но из-за отсутствия ответа я пробую это здесь сейчас.
functions.https.Request
, но не распознает поле, если оно импортировано изfunctions.Request
22.06.2021