Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Gigya注释通知-在节点中生成签名_Javascript_Node.js_Gigya - Fatal编程技术网

Javascript Gigya注释通知-在节点中生成签名

Javascript Gigya注释通知-在节点中生成签名,javascript,node.js,gigya,Javascript,Node.js,Gigya,我正在节点应用程序中使用Gigya评论通知服务,并尝试生成有效的签名。我已经遵循了,但是我的代码生成了错误的散列 这是我的代码: var crypto = require('crypto'); var params = [the notification object from the request]; var eventData = JSON.stringify(params.eventData); var text = params.event + '_' + eve

我正在节点应用程序中使用Gigya评论通知服务,并尝试生成有效的签名。我已经遵循了,但是我的代码生成了错误的散列

这是我的代码:

var crypto = require('crypto');

var params = [the notification object from the request];
var eventData = JSON.stringify(params.eventData);
var text = params.event + '_' 
         + eventData + '_' 
         + params.nonce + '_' 
         + params.timestamp;
var secret = new Buffer('Qmxxxxxxxxxxxxx...xxxxxxw=', 'base64');
var hash = crypto.createHmac('sha1', secret).update(text).digest('base64');

if (hash !== params.signature) {
  console.log('Not ok')
} else{
  console.log('Ok')
}
我认为签名基(文本变量)结构可能无效。 这就是我的文本变量所包含的内容(带有假数据):


如何生成正确的签名?

您的签名库结构看起来是正确的,尽管nonce通常没有任何破折号

生成错误签名的最常见原因是使用了错误的密钥

您的合作伙伴的密钥以BASE64编码提供,位于Gigya网站仪表板部分的Sites表底部(请确保您已登录到Gigya的网站,并且您已完成Gigya的网站设置过程)。请确保您使用的是合作伙伴的密钥,而不是用户的密钥

newComment_[{"categoryID":"category","streamID":"stream","commentID":"123","comment":{"ID":"123","etc":"foobar","timestamp":1447078842653,"threadTimestamp":1447078842653,"status":"published"}}]_aaaaaaaa-bbbb-cccc-dddd-ffffffffffff_1447078842