· 7 years ago · Jul 11, 2018, 03:52 PM
1function getPath(url) {
2 var pathRegex = /.+?\:\/\/.+?(\/.+?)(?:#|\?|$)/;
3 var result = url.match(pathRegex);
4 return result && result.length > 1 ? result[1] : '';
5}
6
7function getQueryString(url) {
8 var arrSplit = url.split('?');
9 return arrSplit.length > 1 ? url.substring(url.indexOf('?')+1) : '';
10}
11
12function getAuthHeader(httpMethod, requestUrl, requestBody) {
13
14 var CLIENT_KEY = '845781'
15 var SECRET_KEY = '5939465cc80042cd8e7c33c8bd446cc5b7310ecddd174b58ad5c121cc04446c46cf01d07241543419e98af09de127704d448c9e0577447c780600bd6dbf36267'
16 var AUTH_TYPE = 'VRS-HMAC-SHA512'
17
18 var requestPath = getPath(requestUrl);
19 var queryString = getQueryString(requestUrl);
20 if (httpMethod == 'GET' || !requestBody || Object.keys(requestBody).length === 0) {
21 requestBody = '';
22//} else {
23}
24// else {
25
26 var hashedPayload = CryptoJS.enc.Hex.stringify(CryptoJS.SHA512(requestBody));
27
28 var timestamp = new Date().toISOString().split('.')[0]+"Z";
29 var requestData = [httpMethod, requestPath, queryString, timestamp, hashedPayload].join("\n");
30 var hashedRequestData = CryptoJS.enc.Hex.stringify(CryptoJS.SHA512(requestData));
31
32 var hmacDigest = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA512(hashedRequestData, SECRET_KEY));
33 var authHeader = AUTH_TYPE + ' timestamp=' + timestamp + ", client=" + CLIENT_KEY + ', signature=' + hmacDigest;
34 return authHeader;
35}
36
37postman.setEnvironmentVariable('hmacAuthHeader', getAuthHeader(request['method'], request['url'], request['data']));