Преглед на файлове

删除md5加密方法,更换位rsa加密算法;

SunZehao преди 1 година
родител
ревизия
e7a0a012f5
променени са 5 файла, в които са добавени 39 реда и са изтрити 35 реда
  1. 5 5
      package-lock.json
  2. 1 1
      package.json
  3. 11 2
      src/api/api.js
  4. 22 13
      src/views/Login.vue
  5. 0 14
      vue.config.js

+ 5 - 5
package-lock.json

@@ -6183,11 +6183,6 @@
       "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
       "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw=="
     },
-    "js-md5": {
-      "version": "0.7.3",
-      "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz",
-      "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
-    },
     "js-message": {
       "version": "1.0.7",
       "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz",
@@ -6216,6 +6211,11 @@
       "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
       "dev": true
     },
+    "jsencrypt": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/jsencrypt/-/jsencrypt-3.3.2.tgz",
+      "integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A=="
+    },
     "jsesc": {
       "version": "2.5.2",
       "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",

+ 1 - 1
package.json

@@ -18,7 +18,7 @@
     "exceljs": "^4.3.0",
     "file-saver": "^2.0.5",
     "js-cookie": "^3.0.1",
-    "js-md5": "^0.7.3",
+    "jsencrypt": "^3.3.2",
     "jszip": "^3.10.1",
     "monaco-editor": "^0.27.0",
     "monaco-editor-webpack-plugin": "^4.2.0",

+ 11 - 2
src/api/api.js

@@ -1,6 +1,6 @@
 // 导入axios实例
 import httpRequest from '@/request/index'
-import md5 from 'js-md5'
+// import md5 from 'js-md5'
 
 // 导出数据接口
 export function apiGetExportMsg(url, params) {
@@ -37,11 +37,20 @@ export function apiGetPrivilegesOfCurrentUserAll() {
 }
 
 //----------------------------------------登录页接口------------------------------------------------
+// 获取密码加密密钥
+export function apigetPublicKey() {
+    // MD5 32 位
+    return httpRequest({
+      url: `user/publicKey`,
+      method: 'get'
+    })
+}
 // 登录接口
 export function loginApi(username,password) {
     // MD5 32 位
     return httpRequest({
-      url: `user/bladeAuth?username=${username}&password=${md5(password)}`,
+    //   url: `user/bladeAuth?username=${username}&password=${md5(password)}`,
+      url: `user/bladeAuth?username=${username}&password=${password}`,
       method: 'post'
     })
 }

+ 22 - 13
src/views/Login.vue

@@ -55,7 +55,8 @@
 
 <script>
 import { ElMessage } from "element-plus";
-import { loginApi, apiGetCodeByToken, apiGetUserMsg, apiGetPrivilegesOfCurrentUserAll } from '../api/api'
+import JSEncrypt from 'jsencrypt'
+import { loginApi, apiGetCodeByToken, apiGetUserMsg, apiGetPrivilegesOfCurrentUserAll, apigetPublicKey } from '../api/api'
 export default {
     data() {
         return {
@@ -120,19 +121,27 @@ export default {
         getLogin(userName, password) {
             // setToken('userMsg', params)
             let that = this
-            loginApi(userName, password).then(datas=>{
-                if (datas) {
-                    if (datas.success) {
-                        // setToken('token', datas.data.access_token)
-                        window.localStorage.setItem('token', datas.data.access_token)
-                        that.getTokenCode(datas.data.access_token)
-                    } else {
-                        ElMessage.error(datas.message);
-                        that.loginLoading = false
-                    }
+            apigetPublicKey().then(request =>{
+                if (request && request.data) {
+                    let publicKeyStr = request.data
+                    const jsRsa = new JSEncrypt()
+                    jsRsa.setPublicKey(publicKeyStr)
+                    let passwordRsa = jsRsa.encrypt(password)
+                    loginApi(userName, passwordRsa).then(datas=>{
+                        if (datas) {
+                            if (datas.success) {
+                                // setToken('token', datas.data.access_token)
+                                window.localStorage.setItem('token', datas.data.access_token)
+                                that.getTokenCode(datas.data.access_token)
+                            } else {
+                                ElMessage.error(datas.message);
+                                that.loginLoading = false
+                            }
+                        }
+                    }).catch(e =>{
+                        that.loading = false
+                    })
                 }
-            }).catch(e =>{
-                that.loading = false
             })
         },
         // 根据token获取code

+ 0 - 14
vue.config.js

@@ -34,20 +34,6 @@ module.exports = defineConfig({
                 }
             },
         } : baseUrl.ROOT
-        // proxy: {
-        //     '/api': {
-        //         target: 'http://123.60.219.66:28800',
-        //         // target: 'http://10.65.78.23:28800',
-        //         changeOrigin: true,
-        //         // pathRewrite: { '^/api/': '' },
-        //         rewrite: (path) => path.replace(/^\/api/, '')
-        //     },
-        //     '/login-api': {
-        //         target: 'http://10.65.78.23:81',
-        //         changeOrigin: true,
-        //         pathRewrite: { '^/login-api': '' },
-        //     },
-        // }
     }
 })