From 7aa597ca5653c53da0da9a7e581a4da1eabaa273 Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Fri, 5 Apr 2024 20:55:27 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E5=85=AC=E5=91=8A=E6=A0=B7=E5=BC=8F=EF=BC=8C=E4=B8=8E=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=8E=9F=E6=9C=89=E6=9C=80=E9=AB=98=E6=9D=83=E9=99=90?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login.vue | 2 ++ src/views/system/notice/index.vue | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/views/login.vue b/src/views/login.vue index f4b6e43..d1a00e4 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -202,6 +202,8 @@ async function initTenantList() { if (tenantList.value != null && tenantList.value.length !== 0) { loginForm.value.tenantId = tenantList.value[0].tenantId; } + tenantList.value.push({tenantId: 1, companyName: '请选择/输入公司名称'}); + } //检测租户选择框的变化 diff --git a/src/views/system/notice/index.vue b/src/views/system/notice/index.vue index 7485dba..57312cc 100644 --- a/src/views/system/notice/index.vue +++ b/src/views/system/notice/index.vue @@ -11,7 +11,7 @@ - + Date: Sat, 6 Apr 2024 14:35:22 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=8A=A0=E5=AF=86=E5=AF=86=E9=92=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 1 + package.json | 7 +++-- src/api/genKeyPair.js | 14 +++++++++ src/api/login.js | 63 +++++++++++++++++++++++++++------------- src/api/system/tenant.js | 31 ++++++++++++++------ src/api/system/user.js | 53 +++++++++++++++++++++++---------- src/utils/jsencrypt.js | 7 ++--- src/utils/request.js | 9 +++--- src/views/login.vue | 4 ++- 9 files changed, 132 insertions(+), 57 deletions(-) create mode 100644 src/api/genKeyPair.js diff --git a/.env.development b/.env.development index 1f3e44a..5645e54 100644 --- a/.env.development +++ b/.env.development @@ -21,6 +21,7 @@ VITE_CLI_BABEL_TRANSPILE_MODULES = true VITE_APP_PORT = 80 +VITE_APP_ENCRYPT_HEADER = 'encrypt-key' # 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' # 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 diff --git a/package.json b/package.json index a1fc8f0..fbf86e8 100644 --- a/package.json +++ b/package.json @@ -38,16 +38,17 @@ "@element-plus/icons-vue": "2.1.0", "@vueup/vue-quill": "1.2.0", "@vueuse/core": "9.5.0", + "@zeronejs/utils": "^1.4.0", "animate.css": "4.1.1", "await-to-js": "^3.0.0", - "@zeronejs/utils": "^1.4.0", "axios": "^1.6.2", + "crypto-js": "^4.1.1", "echarts": "5.4.0", "element-plus": "2.5.3", + "encryptlong": "^3.1.4", "file-saver": "2.0.5", "fuse.js": "6.6.2", "jsencrypt": "3.3.1", - "crypto-js": "^4.1.1", "nprogress": "0.2.0", "pinia": "^2.1.7", "vue": "^3.3.8", @@ -56,9 +57,9 @@ "vue-router": "4.1.4" }, "devDependencies": { + "@types/crypto-js": "^4.1.1", "@types/file-saver": "^2.0.5", "@types/js-cookie": "^3.0.3", - "@types/crypto-js": "^4.1.1", "@types/node": "^18.14.6", "@types/nprogress": "^0.2.0", "@typescript-eslint/eslint-plugin": "^5.56.0", diff --git a/src/api/genKeyPair.js b/src/api/genKeyPair.js new file mode 100644 index 0000000..0692710 --- /dev/null +++ b/src/api/genKeyPair.js @@ -0,0 +1,14 @@ +import request from '@/utils/request' +export function genKeyPair(callback) { + return request({ + url: '/genKeyPair', + headers: { + isToken: false, + repeatSubmit: false + }, + method: 'get' + }).then((res) => { + return callback(res.data.uuidPrivateKey, res.data.RSA_PUBLIC_KEY) + }) + +} diff --git a/src/api/login.js b/src/api/login.js index 1ff985b..f3668c9 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -1,10 +1,11 @@ import request from '@/utils/request' - +import {genKeyPair} from '@/api/genKeyPair' // pc端固定客户端授权id const clientId = import.meta.env.VITE_APP_CLIENT_ID; +const encryptHeader = import.meta.env.VITE_APP_ENCRYPT_HEADER; // 登录方法 -export function login(tenantId,username, password, code, uuid) { +export function login(tenantId, username, password, code, uuid) { const params = { tenantId, username, @@ -14,16 +15,26 @@ export function login(tenantId,username, password, code, uuid) { clientId: clientId, grantType: 'password' } - return request({ - url: '/auth/login', - headers: { - isToken: false, - isEncrypt: true, - repeatSubmit: false - }, - method: 'post', - data: params - }) + return new Promise((resolve, reject) => { + genKeyPair((uuid, public_key) => { + request({ + url: '/auth/login', + headers: { + isToken: false, + isEncrypt: true, + [encryptHeader]: uuid, + publicKey: public_key, + repeatSubmit: false + }, + method: 'post', + data: params + }).then(res => { + resolve(res) + }).catch(error => { + reject(error) + }) + }) + }); } // 注册方法 @@ -33,15 +44,27 @@ export function register(data) { clientId: clientId, grantType: 'password' }; - return request({ - url: '/auth/register', - headers: { - isToken: false, - isEncrypt: true - }, - method: 'post', - data: params + return + new Promise((resolve, reject) => { + genKeyPair((uuid, public_key) => { + request({ + url: '/auth/register', + headers: { + isToken: false, + isEncrypt: true, + [encryptHeader]: uuid, + publicKey: public_key + }, + method: 'post', + data: params + }).then(res => { + resolve(res) + }).catch(error => { + reject(error) + }) + }) }) + } // 获取用户详细信息 diff --git a/src/api/system/tenant.js b/src/api/system/tenant.js index aa35e49..faba7bb 100644 --- a/src/api/system/tenant.js +++ b/src/api/system/tenant.js @@ -1,4 +1,7 @@ import request from '@/utils/request'; +import {genKeyPair} from "@/api/genKeyPair"; + +const encryptHeader = import.meta.env.VITE_APP_ENCRYPT_HEADER; // 查询租户列表 export function listTenant(query) { @@ -10,7 +13,7 @@ export function listTenant(query) { } // 查询租户详细 -export function getTenant(tenantId){ +export function getTenant(tenantId) { return request({ url: '/system/tenant/' + tenantId, method: 'get' @@ -19,13 +22,23 @@ export function getTenant(tenantId){ // 新增租户 export function addTenant(data) { - return request({ - url: '/system/tenant', - method: 'post', - headers: { - isEncrypt: true - }, - data: data + return new Promise((resolve, reject) => { + genKeyPair((uuid,public_key)=>{ + request({ + url: '/system/tenant', + method: 'post', + headers: { + isEncrypt: true, + [encryptHeader]: uuid, + publicKey: public_key, + }, + data: data + }).then(res => { + resolve(res) + }).catch(error => { + reject(error) + }) + }) }); } @@ -42,7 +55,7 @@ export function updateTenant(data) { export function changeTenantStatus(tenantId, version, status) { const data = { tenantId, - version, + version, status }; return request({ diff --git a/src/api/system/user.js b/src/api/system/user.js index 646fc50..ca3be01 100644 --- a/src/api/system/user.js +++ b/src/api/system/user.js @@ -1,6 +1,7 @@ import request from '@/utils/request' import { parseStrEmpty } from "@/utils/ruoyi"; - +import {genKeyPair} from "@/api/genKeyPair"; +const encryptHeader = import.meta.env.VITE_APP_ENCRYPT_HEADER; // 查询用户列表 export function listUser(query) { return request({ @@ -51,13 +52,23 @@ export function resetUserPwd(userId, version, password) { version, password } - return request({ - url: '/system/user/resetPwd', - method: 'put', - headers: { - isEncrypt: true - }, - data: data + return new Promise((resolve, reject) => { + genKeyPair((uuid,public_key)=>{ + request({ + url: '/system/user/resetPwd', + method: 'put', + headers: { + isEncrypt: true, + [encryptHeader]: uuid, + publicKey: public_key, + }, + data: data + }).then(res => { + resolve(res) + }).catch(error => { + reject(error) + }) + }) }) } @@ -98,14 +109,24 @@ export function updateUserPwd(oldPassword, newPassword) { oldPassword, newPassword } - return request({ - url: '/system/user/profile/updatePwd', - method: 'put', - headers: { - isEncrypt: true - }, - data: data - }) + return new Promise((resolve, reject) => { + genKeyPair((uuid,public_key)=>{ + request({ + url: '/system/user/profile/updatePwd', + method: 'put', + headers: { + isEncrypt: true, + [encryptHeader]: uuid, + publicKey: public_key, + }, + data: data + }).then(res => { + resolve(res) + }).catch(error => { + reject(error) + }) + }) + }); } // 用户头像上传 diff --git a/src/utils/jsencrypt.js b/src/utils/jsencrypt.js index 9f69971..408bf6d 100644 --- a/src/utils/jsencrypt.js +++ b/src/utils/jsencrypt.js @@ -1,16 +1,15 @@ -import JSEncrypt from 'jsencrypt'; +import JSEncrypt from 'encryptlong'; // 密钥对生成 http://web.chacuo.net/netrsakeypair -const publicKey = import.meta.env.VITE_APP_RSA_PUBLIC_KEY; // 前端不建议存放私钥 不建议解密数据 因为都是透明的意义不大 const privateKey = import.meta.env.VITE_APP_RSA_PRIVATE_KEY; // 加密 -export const encrypt = (txt ) => { +export const encrypt = (txt, publicKey) => { const encryptor = new JSEncrypt(); encryptor.setPublicKey(publicKey); // 设置公钥 - return encryptor.encrypt(txt); // 对数据进行加密 + return encryptor.encryptLong(txt); // 对数据进行加密 }; // 解密 diff --git a/src/utils/request.js b/src/utils/request.js index 44fb268..6704334 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -74,10 +74,11 @@ service.interceptors.request.use(config => { } // 当开启参数加密 if (isEncrypt && (config.method === 'post' || config.method === 'put')) { - // 生成一个 AES 密钥 - const aesKey = generateAesKey(); - config.headers[encryptHeader] = encrypt(encryptBase64(aesKey)); - config.data = typeof config.data === 'object' ? encryptWithAes(JSON.stringify(config.data), aesKey) : encryptWithAes(config.data, aesKey); + // 根据 AES 密钥进行加密 + const publicKey = (config.headers || {}).publicKey + console.log('publicKey', publicKey) + config.data = typeof config.data === 'object' ? encrypt(encodeURIComponent(JSON.stringify(config.data)), publicKey) : encrypt(encodeURIComponent(config.data), publicKey); + delete config.headers['publicKey']; } // FormData数据去请求头Content-Type if (config.data instanceof FormData) { diff --git a/src/views/login.vue b/src/views/login.vue index d1a00e4..d6d2b5c 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -181,8 +181,10 @@ function handleLogin() { } // 调用action的登录方法 userStore.login(loginForm.value).then(() => { + router.push({path: redirect.value || "/"}); - }).catch(() => { + }).catch((e) => { + console.log(e) loading.value = false; // 重新获取验证码 if (captchaEnabled.value) { -- Gitee From fd66e16bf4e055b89d277984f38d048b37ba1701 Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sat, 6 Apr 2024 19:37:02 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 9 +++++++++ default.conf | 24 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 Dockerfile create mode 100644 default.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..22a84ad --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM nginx + +MAINTAINER onesummer + +RUN rm /etc/nginx/conf.d/default.conf + +ADD default.conf /etc/nginx/conf.d/ + +COPY dist/ /usr/share/nginx/html/ diff --git a/default.conf b/default.conf new file mode 100644 index 0000000..553fac3 --- /dev/null +++ b/default.conf @@ -0,0 +1,24 @@ +server { + listen 80; + server_name localhost; + charset utf-8; + + location / { + root /usr/share/nginx/html; + try_files $uri $uri/ /index.html; + index index.html index.htm; + } + + location /prod-api/ { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header REMOTE-HOST $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://172.16.0.151:8080/; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root html; + } +} -- Gitee From 5e53031b351993a8df363770d39a05763a20e09e Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sat, 6 Apr 2024 19:44:29 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E5=A2=9E=E5=8A=A0pnpm=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=9A=84=E6=8E=92=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 21eab35..6beb2c7 100644 --- a/.gitignore +++ b/.gitignore @@ -124,4 +124,5 @@ dist .pnp.* package-lock.json -yarn.lock \ No newline at end of file +yarn.lock +pnpm-lock.yaml -- Gitee From 2a06030f9e8c62a9ed747c33402962af2893d274 Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sat, 6 Apr 2024 20:22:01 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fbf86e8..9a6b082 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "MIT", "scripts": { "dev": "vite serve --mode development", - "build:prod": "vite build --mode production &&vue-tsc --noEmit", + "build:prod": "vite build --mode production && vue-tsc --noEmit", "build:stage": "vite build --mode staging", "preview": "vite preview" }, -- Gitee From 311257e654efc581040ac4a676c3aeeaffc1151b Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sat, 6 Apr 2024 20:29:45 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9a6b082..4bacb52 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "MIT", "scripts": { "dev": "vite serve --mode development", - "build:prod": "vite build --mode production && vue-tsc --noEmit", + "build:prod": "vite build --mode production", "build:stage": "vite build --mode staging", "preview": "vite preview" }, -- Gitee From d902c0139874e043efdd4b081bccdd1e911abf00 Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sat, 6 Apr 2024 20:45:14 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 22a84ad..9826763 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM nginx +FROM registry-vpc.cn-qingdao.aliyuncs.com/yuzl1/nginx:latest MAINTAINER onesummer -- Gitee From a94a26580fdfa398f375106470cdee83ae0ad53e Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sat, 6 Apr 2024 21:04:38 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9826763..d23722d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM registry-vpc.cn-qingdao.aliyuncs.com/yuzl1/nginx:latest +FROM registry-vpc.cn-qingdao.aliyuncs.com/yuzl1/nginx MAINTAINER onesummer -- Gitee From 387958f8a94bf0f1b0aa40b5da3cf568a3731325 Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sat, 6 Apr 2024 21:08:19 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d23722d..22a84ad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM registry-vpc.cn-qingdao.aliyuncs.com/yuzl1/nginx +FROM nginx MAINTAINER onesummer -- Gitee From 4c387288ba5cbbeccbb8bde90f0c1943c1203320 Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sun, 7 Apr 2024 21:49:13 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E7=A7=9F=E6=88=B7=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/login.vue b/src/views/login.vue index d6d2b5c..745b11b 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -201,9 +201,9 @@ function handleLogin() { async function initTenantList() { const {data} = await getTenantList(); tenantList.value = data.voList; - if (tenantList.value != null && tenantList.value.length !== 0) { - loginForm.value.tenantId = tenantList.value[0].tenantId; - } + // if (tenantList.value != null && tenantList.value.length !== 0) { + // loginForm.value.tenantId = tenantList.value[0].tenantId; + // } tenantList.value.push({tenantId: 1, companyName: '请选择/输入公司名称'}); } -- Gitee From b9dc8b76e61ac3abefb584ecb3843e30b72b42bf Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sun, 7 Apr 2024 22:04:48 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E7=A7=9F=E6=88=B7=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/login.vue b/src/views/login.vue index 745b11b..2bbd29b 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -204,7 +204,7 @@ async function initTenantList() { // if (tenantList.value != null && tenantList.value.length !== 0) { // loginForm.value.tenantId = tenantList.value[0].tenantId; // } - tenantList.value.push({tenantId: 1, companyName: '请选择/输入公司名称'}); + tenantList.value.push({tenantId: '1', companyName: '请选择/输入公司名称'}); } -- Gitee From 984959734be8b983abd0b1219cd360199d45538d Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Sun, 7 Apr 2024 22:25:01 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E7=A7=9F=E6=88=B7=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/login.vue b/src/views/login.vue index 2bbd29b..16d0701 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -204,7 +204,6 @@ async function initTenantList() { // if (tenantList.value != null && tenantList.value.length !== 0) { // loginForm.value.tenantId = tenantList.value[0].tenantId; // } - tenantList.value.push({tenantId: '1', companyName: '请选择/输入公司名称'}); } -- Gitee From 91cf4825ec6c72c5312dcf6f89ab0c0811e0961c Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Mon, 8 Apr 2024 17:58:36 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=9F=E4=BA=A7bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/login.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/login.js b/src/api/login.js index f3668c9..29e6474 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -21,7 +21,7 @@ export function login(tenantId, username, password, code, uuid) { url: '/auth/login', headers: { isToken: false, - isEncrypt: true, + isEncrypt: false, [encryptHeader]: uuid, publicKey: public_key, repeatSubmit: false -- Gitee From 92f05507ba120720839f6784a5a19c042a0dff50 Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Mon, 8 Apr 2024 18:39:48 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/login.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/login.js b/src/api/login.js index 29e6474..f3668c9 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -21,7 +21,7 @@ export function login(tenantId, username, password, code, uuid) { url: '/auth/login', headers: { isToken: false, - isEncrypt: false, + isEncrypt: true, [encryptHeader]: uuid, publicKey: public_key, repeatSubmit: false -- Gitee From 0ac3a374c9414d785318e72c1b25fbcfb3c29c12 Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Mon, 8 Apr 2024 19:15:19 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E5=8A=A0=E5=AF=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.production | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.production b/.env.production index cbaf046..49b101c 100644 --- a/.env.production +++ b/.env.production @@ -21,6 +21,7 @@ VITE_BUILD_COMPRESS = gzip VITE_APP_PORT = 80 +VITE_APP_ENCRYPT_HEADER = 'encrypt-key' # 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' # 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 -- Gitee From 2041c317a27c0bd5aa572bb7cfe010b1b1938710 Mon Sep 17 00:00:00 2001 From: yuzl6 Date: Mon, 8 Apr 2024 19:27:37 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E5=8A=A0=E5=AF=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- default.conf | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/default.conf b/default.conf index 553fac3..dfa5f13 100644 --- a/default.conf +++ b/default.conf @@ -10,11 +10,16 @@ server { } location /prod-api/ { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header REMOTE-HOST $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://172.16.0.151:8080/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $http_host; + proxy_set_header X-Forwarded-Port $server_port; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; } error_page 500 502 503 504 /50x.html; -- Gitee