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