You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
685 B
21 lines
685 B
const { CommunicationKey } = require("../utils/comKey");
|
|
|
|
function verifyPayloadIntegrity(request, response, next) {
|
|
const comKey = new CommunicationKey();
|
|
if (process.env.NODE_ENV === "development") {
|
|
comKey.log('verifyPayloadIntegrity is skipped in development.')
|
|
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.' })
|
|
next();
|
|
}
|
|
|
|
module.exports = {
|
|
verifyPayloadIntegrity
|
|
}
|