我在Uber Sandbox中遇到过NodeJS和WebHook测试的一些问题。我能够收到正确的POST响应,但安全检查(X-Uber-Signature)总是错误的。
df3<- A B C
7.634 10.0 1
5.223 33.0 2
5.479 22.0 3
5.390 49.0 4
5.439 53.0 5
JSON.stringify(req.body)内容:
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");
我在这个字符串上尝试了很多(MANY)变换,但没有任何效果,如果有人有想法,那将非常感谢..谢谢
答案 0 :(得分:1)
请检查优步documentation以解决您的问题:
由于JavaScript对JSON规范的严格解释,如果POST主体中发送了反斜杠,则在解析时将删除它们。这可以防止NodeJS中实现的webhook接收器准确地验证webhook签名。我们正在努力从有效负载中删除所有反斜杠以避免这种情况,并在完成该工作后删除此注释。
另外,请检查此link。