Rechercher dans la documentation…

Rechercher dans la documentation…

Tutoriels

Signature des webhooks

Les webhooks ApiFlow sont signés à l'aide d'une clé secrète afin de garantir qu'ils ne sont pas altérés pendant le transfert et de confirmer qu'ils ont bien été envoyés par ApiFlow.

​Signature des webhooks

Lorsqu'ApiFlow envoie un webhook, il calcule une signature à l'aide de l'algorithme HMAC avec la fonction de hachage SHA-256. Cette signature est ensuite incluse dans l'en-tête X-Webhook-Signature de la requête.

Pour créer un secret de signature de webhook, rendez-vous d'abord dans les Paramètres du compte sur le portail des développeurs et cliquez sur l'onglet « Clés ».

Ici, vous pouvez générer un nouveau secret en cliquant sur « Remplacer le secret ». Il ne s'affichera qu'une seule fois, veillez donc à le conserver en lieu sûr.

​Vérification des webhooks

Pour vérifier un webhook, vous devez calculer la signature HMAC du corps de la requête à l'aide de la clé secrète et la comparer à la signature figurant dans l'en-tête X-Webhook-Signature.

Veuillez noter que vous devez d'abord créer un secret de signature de webhook dans les Paramètres du compte sur le portail des développeurs.

Voici un exemple illustrant comment vérifier un webhook dans Node.js :

const crypto = require('node:crypto');

function verifyWebhookSignature(key, data, signature) {

	const expectedSignature = crypto.createHmac('sha256', key)
        .update(data)
        .digest('hex');

	return expectedSignature === signature;
}

//...

app.post('/webhook', (req, res) => {
    const isValid = verifyWebhookSignature(
        process.env.WEBHOOK_SECRET,
        JSON.stringify(req.body),
        req.headers['x-webhook-signature']
    );

    //...
});

const crypto = require('node:crypto');

function verifyWebhookSignature(key, data, signature) {

	const expectedSignature = crypto.createHmac('sha256', key)
        .update(data)
        .digest('hex');

	return expectedSignature === signature;
}

//...

app.post('/webhook', (req, res) => {
    const isValid = verifyWebhookSignature(
        process.env.WEBHOOK_SECRET,
        JSON.stringify(req.body),
        req.headers['x-webhook-signature']
    );

    //...
});

const crypto = require('node:crypto');

function verifyWebhookSignature(key, data, signature) {

	const expectedSignature = crypto.createHmac('sha256', key)
        .update(data)
        .digest('hex');

	return expectedSignature === signature;
}

//...

app.post('/webhook', (req, res) => {
    const isValid = verifyWebhookSignature(
        process.env.WEBHOOK_SECRET,
        JSON.stringify(req.body),
        req.headers['x-webhook-signature']
    );

    //...
});

Click here to update your cookies settings