qrcode-framework
Version:
74 lines • 6.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const crypto_1 = require("crypto");
const http_1 = require("http");
// tslint:disable-next-line:no-var-requires
const uuidV1 = require('uuid/v1');
class Checker {
static async check(bizCfg) {
const path = bizCfg.path;
const clientInfo = bizCfg.clientInfo;
const requestBody = bizCfg.requestBody;
const greenVersion = bizCfg.greenVersion;
const hostname = bizCfg.hostname;
const gmtCreate = new Date().toUTCString();
const md5 = crypto_1.createHash('md5');
// 请求头
const requestHeaders = {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Content-MD5': md5.update(requestBody).digest().toString('base64'),
'Date': gmtCreate,
'x-acs-version': greenVersion,
'x-acs-signature-nonce': uuidV1(),
'x-acs-signature-version': '1.0',
'x-acs-signature-method': 'HMAC-SHA1',
};
// 对请求的签名
Checker.signature(requestHeaders, bizCfg);
// HTTP请求设置
const options = {
hostname,
port: 80,
path: encodeURI(path + '?clientInfo=' + JSON.stringify(clientInfo)),
method: 'POST',
headers: requestHeaders,
};
return new Promise((resolve, reject) => {
const req = http_1.request(options, (res) => {
res.setEncoding('utf8');
res.on('data', (chunk) => {
resolve(chunk);
});
res.on('error', (err) => {
reject(err);
});
});
req.write(requestBody);
req.end();
});
}
static signature(requestHeaders, bizCfg) {
const accessKeyId = bizCfg.accessKeyId;
const accessKeySecret = bizCfg.accessKeySecret;
const path = bizCfg.path;
const clientInfo = bizCfg.clientInfo;
const signature = [];
signature.push('POST\n');
signature.push('application/json\n');
signature.push(requestHeaders['Content-MD5'] + '\n');
signature.push('application/json\n');
signature.push(requestHeaders.Date + '\n');
signature.push('x-acs-signature-method:HMAC-SHA1\n');
signature.push('x-acs-signature-nonce:' + requestHeaders['x-acs-signature-nonce'] + '\n');
signature.push('x-acs-signature-version:1.0\n');
signature.push('x-acs-version:' + bizCfg.greenVersion + '\n');
signature.push(path + '?clientInfo=' + JSON.stringify(clientInfo));
const authorization = crypto_1.createHmac('sha1', accessKeySecret)
.update(signature.join(''))
.digest().toString('base64');
requestHeaders.Authorization = 'acs ' + accessKeyId + ':' + authorization;
}
}
exports.default = Checker;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWxpeXVuQ2hlY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJBbGl5dW5DaGVjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFnRDtBQUNoRCwrQkFBK0I7QUFDL0IsMkNBQTJDO0FBQzNDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUVsQyxNQUFxQixPQUFPO0lBQ2pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQVc7UUFDakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsbUJBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QixNQUFNO1FBQ04sTUFBTSxjQUFjLEdBQUc7WUFDbkIsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLGFBQWEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDbEUsTUFBTSxFQUFFLFNBQVM7WUFDakIsZUFBZSxFQUFFLFlBQVk7WUFDN0IsdUJBQXVCLEVBQUUsTUFBTSxFQUFFO1lBQ2pDLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsd0JBQXdCLEVBQUUsV0FBVztTQUN4QyxDQUFDO1FBRUYsU0FBUztRQUNULE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FB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