Uber webhook签名问题nodeJs(hmac)

我有一些NodeJS的问题和Uber Sandbox的WebHooktesting。 我能够收到正确的POST响应,但是安全检查(X-Uber-Signature)总是错误的。

module.exports = { myWebService: function(req, res) { const hmac = crypto.createHmac('sha256','<MYSECRET>'); var hash = hmac.update(JSON.stringify(req.body)).digest('hex'); //Those values are always different.. console.log("Constructed hash : " + hash +"\n"); console.log("Received hash : " + req.header('X-Uber-Signature') + "\n"); 

JSON.stringify(req.body)内容:

 {"event_id":"08db06df-559a-457a-ba92-3c8380bb7ec7","resource_href":"https://sandbox-api.uber.com/v1/requests/8f5cc257-cfdf-4654-9acd-085aae740107","meta":{"status":"arriving","rider_id":"8IMl8ulC-yJTqkbsq5g4HuyuYeRQ5b5aSsmLt2vpjl6H8Fk_JPz_5AZYj4ERi6M7MagmrJtPM7L_rAnHLgO0qLgGtpD8Lg32rnGTEUkWHAbPjDZIl0-X91PrrujPY_IYGA==","user_id":"ecb2e871-b768-4f76-bfa9-8bc253bced0e","resource_id":"8f5cc257-cfdf-4654-9acd-085aae740107"},"event_type":"all_trips.status_changed","event_time":1508163555} 

我尝试了许多(很多)这个string转换,但没有任何工作,如果任何人有一个想法,将不胜感激..谢谢

请检查优步文档以解决您的问题:

由于JavaScript对JSON规范的严格解释,如果在POST正文中发送了反斜杠,它们在parsing时将被删除。 这可以防止在NodeJS中实现的webhook接收器准确地validationwebhook签名。 我们正在从有效载荷中删除所有反斜杠以避免这种情况,并且在完成该工作时将删除这个注释。

另外,请检查这个链接 。