2015-11-10 2 views
3

Я пользуюсь службой уведомления о комментариях Gigya в своем приложении-узле и пытаюсь создать действительную подпись. Я последовал за this documentation, но мой код генерирует неправильный хеш.Уведомление о комментарии 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') 
} 

Я думаю, что подпись база (переменная текст) конструкция может не действует. Это то, что мой переменный содержит текст (с поддельной DATAS):

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

Как создать правильную подпись?

ответ

2

Ваша конструкция базы подписи выглядит правильно, хотя в ней нет дешифрования.

Наиболее распространенная причина для генерирования неправильной подписи - использование неправильного секретного ключа.

Ваш партнера Secret Key предоставляется в кодировке BASE64, в нижней части таблицы сайтов в разделе Dashboard в сайте Gigya (пожалуйста, убедитесь, что вы вошли в систему на веб Gigya и что вы завершили сайт в Gigya в Процесс установки). Пожалуйста, убедитесь, что вы используете секретный ключ партнера , а не секретный ключ вашего пользователя .

Смежные вопросы