UNPKG

tplus-api

Version:

tplus api invoke

126 lines (110 loc) 4.63 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _stringify = require('babel-runtime/core-js/json/stringify'); var _stringify2 = _interopRequireDefault(_stringify); var _findIndex2 = require('lodash/findIndex'); var _findIndex3 = _interopRequireDefault(_findIndex2); var _User = require('../model/User'); var _User2 = _interopRequireDefault(_User); var _app = require('../const/app'); var _mutantsMicrofx = require('mutants-microfx'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var crypto = require('crypto'); var constant = _mutantsMicrofx.env.constant, platform = _mutantsMicrofx.env.platform, browser = _mutantsMicrofx.env.browser, os = _mutantsMicrofx.env.os; function getAppCloudAuthInfo(orgId) { var user = _User2.default.restore(); if (!user) { return ''; } var params = { appKey: atob(_app.cspAk), orgId: orgId ? orgId : user.orgId, userUid: user.userId }; var params_string = (0, _stringify2.default)(params); var hash = crypto.createHash('md5').update(params_string).digest("hex"); return new Buffer(hash + ',' + params_string).toString('base64'); } var middleware = function middleware(axios) { axios.interceptors.request.use(function proxyRequest(cfg) { var user = _User2.default.restore(); //使用在线的代理服务器 解决跨域问题 var proxyURL = user && user.proxyserver ? user.proxyserver : _app.prodProxyHost; //如果调试时在启动本地代理 //_DEV_是否启用模拟数据 // if (__DEV__) { // proxyURL = devProxyHost; // }else{ // proxyURL = prodProxyHost; // } if (cfg.url.indexOf('http') == -1) { cfg.url = "" + cfg.baseURL + cfg.url; } var noProxyHostIndex = (0, _findIndex3.default)(_app.noProxyHostArray, function (url) { return cfg.url.indexOf(url) !== -1; }); if (proxyURL && noProxyHostIndex === -1) { if (platform == constant.platform.chanjet && window.location.protocol.indexOf('file') > -1) { // 工作圈模式下 http转为file协议 不用使用代理 } else { cfg.url = proxyURL + "/?url=" + cfg.url; } } var tplusHostIndex = (0, _findIndex3.default)(_app.tplusHostArray, function (url) { return cfg.baseURL.indexOf(url) !== -1; }); if (tplusHostIndex !== -1) { var authInfo = getAppCloudAuthInfo(cfg.data && cfg.data.targetOrgID ? cfg.data.targetOrgID : ''); cfg.headers['authInfo'] = authInfo; } if (user.channel && user.channel.throughProxy) { cfg.headers['appkey'] = atob(_app.cspAk); if (user) { cfg.headers['userid'] = user.userId; cfg.headers['orgid'] = user.orgId; cfg.headers['token'] = user.accessToken; } } if (cfg.headers['checkThroughProxy'] && cfg.headers['checkOrgId']) { cfg.headers['appkey'] = atob(_app.cspAk); if (user) { cfg.headers['userid'] = user.userId; cfg.headers['orgid'] = cfg.headers['checkOrgId']; cfg.headers['token'] = user.accessToken; } } //支持saas版本 if (user && user.sid && !cfg.headers['checkThroughProxy']) { cfg.headers['tplussid'] = user.sid; } if (cfg.url.indexOf('/api/v2/') > 0) { cfg.headers['openToken'] = getAppCloudAuthInfo(''); cfg.headers['appkey'] = atob(_app.cspAk); } delete cfg.headers['checkThroughProxy']; delete cfg.headers['checkOrgId']; var ciaHostIndex = (0, _findIndex3.default)(_app.ciaHostArray, function (url) { return cfg.baseURL.indexOf(url) !== -1; }); if (ciaHostIndex === -1 && user && user.tplusToken) { if (!!cfg.headers['Authorization']) { //Authorization如果有值 用调用方的值 不覆盖 } else { cfg.headers['Authorization'] = "token " + user.tplusToken; } } return cfg; }, function promiseError(error) { return _promise2.default.reject(error); }); }; exports.default = middleware; //# sourceMappingURL=request-interceptor.js.map //# sourceMappingURL=request-interceptor.js.map