【问题标题】:Gigya Comment Notification - Generate signature in nodeGigya 评论通知 - 在节点中生成签名
【发布时间】:2016-01-08 08:05:10
【问题描述】:

我在我的节点应用程序中使用 Gigya 评论通知服务并尝试生成有效签名。我关注了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

如何生成正确的签名?

【问题讨论】:

    标签: javascript node.js gigya


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      • 2016-03-31
      • 2015-12-19
      • 1970-01-01
      相关资源
      最近更新 更多