const { CommunicationKey } = require("../utils/comKey"); const RuntimeSettings = require("../utils/runtimeSettings"); const runtimeSettings = new RuntimeSettings(); function verifyPayloadIntegrity(request, response, next) { const comKey = new CommunicationKey(); if (process.env.NODE_ENV === "development") { comKey.log("verifyPayloadIntegrity is skipped in development."); runtimeSettings.parseOptionsFromRequest(request); next(); return; } const signature = request.header("X-Integrity"); if (!signature) return response .status(400) .json({ msg: "Failed integrity signature check." }); const validSignedPayload = comKey.verify(signature, request.body); if (!validSignedPayload) return response .status(400) .json({ msg: "Failed integrity signature check." }); runtimeSettings.parseOptionsFromRequest(request); next(); } module.exports = { verifyPayloadIntegrity, };