我需要原始請求主體能夠通過SHA-1消化它來驗證與請求一起傳遞給我的Firebase函數(在Google Cloud Functions上運行)的Facebook webhook X-Hub-Signature標頭。如何獲取Google雲端函數中的原始請求正文?
問題是,在這種情況下(使用Content-Type: application/json
標題),GCF使用bodyParser.json()
自動分析正文,這會消耗來自流的數據(意味着它不能再次沿Express中間件鏈消耗),只提供解析JavaScript對象爲req.body
。原始請求緩衝區被丟棄。
我試圖提供一個Express應用程序到functions.https.onRequest()
,但是這似乎是作爲一個子應用程序運行,或者正在解析請求正文,就像您傳遞一個普通的請求 - 響應回調到onRequest()
一樣。
有什麼辦法可以禁用GCF來爲我解析身體?或者我可以以某種方式指定我自己的verify
回撥到bodyParser.json()
?或者有其他方法嗎? PS:我第一次在一週前聯繫了Firebase支持,但是由於缺乏響應,我現在在這裏嘗試。
我和你一樣。我試圖「重新生成」原始請求有效載荷,但這不可行。安全解決方法是使用隨機字符部署該功能,以便端點不可測。我在[我的文章]中詳細闡述了更多信息(https://medium.com/@mrkevinze/regenerating-a-raw-request-payload-an-impossible-task-e4133fb2571) –
現在,您可以從req獲取原始身體。原始信體。 –