Gigya 评论通知 - 在节点中生成签名
Gigya Comment Notification - Generate signature in node
我在我的节点应用程序中使用 Gigya Comment Notification 服务并尝试生成有效签名。我已关注 this documentation,但我的代码生成了错误的哈希值。
这是我的代码:
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')
}
我认为签名基础(文本变量)构造可能无效。
这是我的文本变量包含的内容(带有假数据):
newComment_[{"categoryID":"category","streamID":"stream","commentID":"123","comment":{"ID":"123","etc":"foobar","timestamp":1447078842653,"threadTimestamp":1447078842653,"status":"published"}}]_aaaaaaaa-bbbb-cccc-dddd-ffffffffffff_1447078842
如何生成正确的签名?
您的签名基础结构看起来是正确的,尽管随机数中通常没有任何破折号。
生成错误签名的最常见原因是使用了错误的密钥。
您合作伙伴的 密钥 以 BASE64 编码提供,位于 Gigya 网站仪表板部分的站点 Table 底部(请确保您是登录到 Gigya 的网站并且您已完成 Gigya 的网站设置过程)。请确保您使用的是合作伙伴的 Secret Key 而不是您用户的 Secret Key.
我在我的节点应用程序中使用 Gigya Comment Notification 服务并尝试生成有效签名。我已关注 this documentation,但我的代码生成了错误的哈希值。
这是我的代码:
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')
}
我认为签名基础(文本变量)构造可能无效。 这是我的文本变量包含的内容(带有假数据):
newComment_[{"categoryID":"category","streamID":"stream","commentID":"123","comment":{"ID":"123","etc":"foobar","timestamp":1447078842653,"threadTimestamp":1447078842653,"status":"published"}}]_aaaaaaaa-bbbb-cccc-dddd-ffffffffffff_1447078842
如何生成正确的签名?
您的签名基础结构看起来是正确的,尽管随机数中通常没有任何破折号。
生成错误签名的最常见原因是使用了错误的密钥。
您合作伙伴的 密钥 以 BASE64 编码提供,位于 Gigya 网站仪表板部分的站点 Table 底部(请确保您是登录到 Gigya 的网站并且您已完成 Gigya 的网站设置过程)。请确保您使用的是合作伙伴的 Secret Key 而不是您用户的 Secret Key.