UNPKG

@ikas/admin-api-client

Version:

ikas public node api client for store apps and private apps

35 lines 1.34 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateIkasWebhookMiddleware = void 0; exports.validateIkasWebhookSignature = validateIkasWebhookSignature; exports.getParsedIkasWebhookData = getParsedIkasWebhookData; const crypto_1 = __importDefault(require("crypto")); const validateIkasWebhookMiddleware = (clientSecret) => async (req, res, next) => { const data = req.body; if (validateIkasWebhookSignature(data, clientSecret)) { await next(); } else { res.status(401).send({ message: 'invalid signature', statusCode: 401 }); } }; exports.validateIkasWebhookMiddleware = validateIkasWebhookMiddleware; function validateIkasWebhookSignature(data, clientSecret) { const generatedHash = crypto_1.default .createHmac('sha256', clientSecret || '') .update(data.data, 'utf8') .digest('hex'); return generatedHash === data.signature; } function getParsedIkasWebhookData(data, clientSecret) { if (validateIkasWebhookSignature(data, clientSecret)) { return JSON.parse(data.data); } else { throw new Error('invalid signature'); } } //# sourceMappingURL=webhook-helpers.js.map