dc-management-sdk-js
Version:
Amplience Dynamic Content Management SDK
20 lines • 1.46 kB
JavaScript
/**
* Utility to help calculate webhook signatures
*/
export class WebhookSignature {
/**
* Calculates the signature for the provided webhook body and secret.
* If the same secret value held by Dynamic Content is used the signature will match the value sent as part of the notification.
* This can be used to verify the request was sent by a trusted party.
*
* @param body Raw response body bytes sent as part of the notification
* @param secret Shared secret value previously set in Dynamic Content
*/
static async calculate(body, secret) {
const { createHmac } = await import('crypto');
const hmac = createHmac('sha256', secret);
hmac.update(body, 'utf8');
return hmac.digest('base64');
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViaG9va1NpZ25hdHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvV2ViaG9va1NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQVksRUFBRSxNQUFjO1FBQ3hELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0YifQ==