From 063b983daaf51a7f1e8677bde1e9c0e618866c91 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 21 二月 2020 10:30:19 +0800 Subject: [PATCH] 2020-02-21 --- src/api/index.js | 98 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 71 insertions(+), 27 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index b89eb20..87326a2 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,8 +1,8 @@ import axios from 'axios' import qs from 'qs' import {notification } from 'antd' -// import md5 from 'md5' -// import Utils from '@/utils/utils.js' +import md5 from 'md5' +import Utils from '@/utils/utils.js' import options from '@/store/options.js' axios.defaults.crossDomain = true @@ -27,6 +27,7 @@ const setCurrentUrl = () => { if (!!(window.history && window.history.pushState)) { + sessionStorage.clear() window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') window.location.reload() } @@ -93,14 +94,25 @@ /** * @description 鐧诲綍绯荤粺, 鑾峰彇鐢ㄦ埛淇℃伅 */ - getusermsg (username, password) { + getusermsg (username, password, isCloud = false) { + let param = { + // func: 'webapi_login', + UserName: username, + Password: password, + Type: 'X' + } + param.Password = Utils.formatOptions(param.Password) + param.appkey = window.GLOB.appkey || '' + + if (isCloud && options.cloudLoginApi) { + param.rduri = options.cloudLoginApi + } else if (window.GLOB.mainSystemApi) { + param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon') + } + return axios({ - url: 'webapi/getjsonresult', - data: { - DBT: 'proc', - DBS: 'webapi_login', - DBP: JSON.stringify({ 'UserName': username, 'Password': password }) - } + url: '/webapi/dologon', + data: param }) } @@ -113,25 +125,30 @@ param.SessionUid = sessionStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' param.appkey = window.GLOB.appkey || '' - - if (sessionStorage.getItem('isEditState') && options.cloudServiceApi) { // 缂栬緫鐘舵�侊紝涓斿瓨鍦ㄤ簯绔湴鍧� - param.rduri = options.cloudServiceApi + + let _rduri = '' + if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) { // 缂栬緫鐘舵�侊紝涓斿瓨鍦ㄤ簯绔湴鍧� + _rduri = options.cloudServiceApi param.userid = sessionStorage.getItem('CloudUserID') param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' } else if (window.GLOB.mainSystemApi) { - param.rduri = window.GLOB.mainSystemApi + _rduri = window.GLOB.mainSystemApi } - // param.nonc = Utils.getuuid() - // param._ = new Date().getTime() + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + let values = keys.map(key => key + param[key]).join('') + param.sign = md5(values) + param.t = new Date().getTime() - // let keys = Object.keys(param).sort() - // let values = keys.map(key => key + param[key]).join('') - // param.sign = md5(values) + if (_rduri) { + param.rduri = _rduri + } return axios({ - url: '/webapi/dostar', + url: '/webapi/dostars', data: param }) } @@ -146,22 +163,32 @@ param.LoginUID = sessionStorage.getItem('LoginUID') || '' param.appkey = window.GLOB.appkey || '' + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + let values = keys.map(key => key + param[key]).join('') + param.sign = md5(values) + param.t = new Date().getTime() + return axios({ - url: '/webapi/dostar', + url: '/webapi/dostars', data: param }) } /** * @description 鑾峰彇绯荤粺閰嶇疆锛屼紭鍏堜粠缂撳瓨涓彇鍊硷紝澧炲姞appkey + * @param {Object} param 璇锋眰鍙傛暟 + * @param {Boolean} SSO 鏄惁涓哄崟鐐圭櫥褰曞湴鍧� */ - getSystemCacheConfig (param) { + getSystemCacheConfig (param, SSO = true) { param.userid = sessionStorage.getItem('UserID') param.lang = localStorage.getItem('lang') || '' param.SessionUid = sessionStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' param.appkey = window.GLOB.appkey || '' - if (window.GLOB.mainSystemApi) { + + if (window.GLOB.mainSystemApi && SSO) { param.rduri = window.GLOB.mainSystemApi } @@ -169,13 +196,22 @@ delete _param.timestamp delete _param.secretkey _param = JSON.stringify(_param) + _param = md5(_param) if (GlobMap.has(_param)) { return Promise.resolve(GlobMap.get(_param)) } else { + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + keys = keys.filter(key => key !== 'rduri') + let values = keys.map(key => key + param[key]).join('') + param.sign = md5(values) + param.t = new Date().getTime() + return new Promise(resolve => { axios({ - url: '/webapi/dostar', + url: '/webapi/dostars', data: param }).then(res => { @@ -195,12 +231,20 @@ param.SessionUid = sessionStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' - if (param.func === 'RolesAdd') { // 瑙掕壊娣诲姞鏃讹紝浼燼ppkey - param.appkey = window.GLOB.appkey || '' - } + // if (param.func === 'RolesAdd') { // 瑙掕壊娣诲姞鏃讹紝浼燼ppkey(澶栭儴鎺ュ彛缁熶竴娣诲姞) + // param.appkey = window.GLOB.appkey || '' + // } + + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + keys = keys.filter(key => key !== 'rduri' && key !== 't') + let values = keys.map(key => key + param[key]).join('') + param.sign = md5(values) + param.t = new Date().getTime() return axios({ - url: '/webapi/dostar', + url: '/webapi/dostars', data: param }) } -- Gitblit v1.8.0