2016-06-21 15 views
1

On Cloud-Code auf Parse Im versuchen, die Kopfzeile zu überprüfen x-Hub-Signatur von Facebook Webhook erhalten.Verify Facebook X-Hub-Signatur

secret ist der richtige geheime Schlüssel der Facebook App.

var 
hmac, 
expectedSignature, 
payload = JSON.stringify(req.body), 
secret = 'xyzxyzxyz'; 

hmac = crypto.createHmac('sha1', secret); 
hmac.update(payload, 'utf-8'); 
expectedSignature = 'sha1=' + hmac.digest('hex'); 
console.log(expectedSignature); 
console.log(req.headers['x-hub-signature']); 

aber die Unterschriften stimmen nie überein. Was ist los?

+0

Was ist der eigentliche Inhalt von 'Nutzlast', nachdem Sie JSON.stringify verwendet haben? – CBroe

+0

die String-Repräsentation der JSON, die im Rumpf empfangen wurde, beginnend mit {"entry": [{"changes": [....... – GPack

Antwort

1

Wenn Sie den Körper in ein Objekt mit Middleware sind Parsen Besuche Node.js - get raw request body using Express

Wenn Sie bereits das rohe Parsing-Modul verwendet wird, sollte es funktionieren, wenn Sie nicht JSON.stringify req.body tun:

payload = req.body, 
0

Wenn jemand auch zu diesem Post wegen der Überprüfung von Facebook-Messenger-Anfragen mit Sonderzeichen wie äöå kam, funktioniert das solution wie ein Charme!