Sto utilizzando un webhook GitHub per eseguire il pipe degli eventi su una mia applicazione (un'istanza di Hubot di GitHub) ed è protetto con un segreto sha1.GitHub Webhook Secret Never Validates
Sto utilizzando il seguente codice per validare gli hash su webhooks in arrivo
crypto = require('crypto')
signature = "sha1=" + crypto.createHmac('sha1', process.env.HUBOT_GITHUB_SECRET).update(new Buffer request.body).digest('hex')
unless request.headers['x-hub-signature'] is signature
response.send "Signature not valid"
return
L'intestazione X-Hub-Signature attraversato nel webhook assomiglia a questo
X-Hub-Signature : sha1 = 1cffc5d4c77a3f696ecd9c19dbc2575d22ffebd4
sto passando nella chiave e dati con precisione come da documentazione di GitHub, ma l'hash finisco sempre s up different.
Ecco la documentazione di GitHub. https://developer.github.com/v3/repos/hooks/#example
e questa è la sezione che sto molto probabilmente interpretando male
segreto: Una stringa opzionale che è passato con le richieste HTTP come un'intestazione X-Hub-Signature. Il valore di questa intestazione è calcolato come il digest esadecimale HMAC del corpo, utilizzando il segreto come chiave.
Qualcuno può vedere dove sto andando male?
non sembra funzionare per me – ditoslav
molto importante ricordare che il Hookshot GitHub * deve * disponga di un Content-Type impostato a 'application/json'. Troverai queste impostazioni nella pagina di configurazione del webhook. https://github.com/MY_ORG/MY_REPO/settings/hooks/HOOK_ID#delivery-response –
Come gli stati di @MrClean, usa application/json! – Mattis