@cybersource/flex-sdk-node
Version:
Easily create keys for use in a Flex API integration and verifying Flex token contents
23 lines (18 loc) • 748 B
JavaScript
/* Copyright (c) 2018 by CyberSource */
const crypto = require('crypto');
const { URL } = require('url');
const signature = require('./signature');
function generateHeaders(config, messageBody) {
const digest = crypto.createHash('sha256').update(messageBody).digest('base64');
const headers = {
host: new URL(config.getUrl()).host,
date: new Date(Date.now()).toUTCString(), // 'Thu, 25 May 2017 16:34:09 GMT'
'(request-target)': 'post /flex/v1/keys',
digest: `SHA-256=${digest}`,
'v-c-merchant-id': config.mid,
};
headers.signature = signature(headers, config.keyId, config.sharedSecret);
delete headers['(request-target)']; // removing as invalid http header
return headers;
}
module.exports = generateHeaders;