UNPKG

easy-api-client

Version:

开源项目服务端api框架easy-spring-boot-api的typescript客户端api对接工具包

91 lines (90 loc) 3.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ApiDecryptAfterHandler = exports.ApiCheckSignAfterHandler = void 0; var EncryptUtil_1 = require("../../utils/EncryptUtil"); var ApiCheckSignAfterHandler = /** @class */ (function () { function ApiCheckSignAfterHandler() { } ApiCheckSignAfterHandler.newInstance = function () { return new ApiCheckSignAfterHandler(); }; ApiCheckSignAfterHandler.prototype.convertToSignParams = function (signParams, key, value) { var _this = this; if (value instanceof Array) { //数组 var arr = value; arr.forEach(function (v, i) { _this.convertToSignParams(signParams, "".concat(key, "[").concat(i, "]"), v); }); } else if (typeof value === 'object' && value != null) { Object.keys(value).forEach(function (subKey) { _this.convertToSignParams(signParams, "".concat(key, ".").concat(subKey), value[subKey]); }); } else { signParams[key] = value; } }; ApiCheckSignAfterHandler.prototype.handle = function (api, options, response) { var _this = this; if (!api.needSignResult) { return response; } var data = response.data.data; if (!data) { return response; } var signParams = {}; Object.keys(data).forEach(function (key) { var value = data[key]; _this.convertToSignParams(signParams, key, value); }); var timestamp = response.data.timestamp; var sign = EncryptUtil_1.EncryptUtil.signSHA1Hex(signParams, timestamp, options.secret); if (response.data.sign != sign) { //验签失败 console.warn("验签失败, 服务器响应信息非法!"); throw new Error("验签失败, 服务器响应信息非法!"); } return response; }; ApiCheckSignAfterHandler.prototype.order = function () { return -2; //验签处理器最先执行 }; return ApiCheckSignAfterHandler; }()); exports.ApiCheckSignAfterHandler = ApiCheckSignAfterHandler; var ApiDecryptAfterHandler = /** @class */ (function () { function ApiDecryptAfterHandler() { } ApiDecryptAfterHandler.newInstance = function () { return new ApiDecryptAfterHandler(); }; ApiDecryptAfterHandler.prototype.handle = function (api, options, response) { var _a; if (!api.decryptResponse || !api.decryptParams || !((_a = response.data) === null || _a === void 0 ? void 0 : _a.data)) { return response; } var data = response.data.data; api.decryptParams.forEach(function (paramKey) { var value = data[paramKey]; if (typeof value === "string") { //字符串类型才可以加密 try { var content = EncryptUtil_1.EncryptUtil.decrypt(value, options.secret); data[paramKey] = content; } catch (e) { console.warn("\u53C2\u6570[".concat(value, "]\u52A0\u5BC6\u5931\u8D25!")); } } }); return response; }; ApiDecryptAfterHandler.prototype.order = function () { return 999; //解密处理器最后执行 }; return ApiDecryptAfterHandler; }()); exports.ApiDecryptAfterHandler = ApiDecryptAfterHandler;