From cab30cd67b51f839c09ddf0f794fd73d3515cec6 Mon Sep 17 00:00:00 2001 From: Rekord <1324596506@qq.com> Date: Sun, 16 Apr 2023 18:30:44 +0800 Subject: [PATCH 1/2] fix: adapter backend interface change --- src/services/api/api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/api/api.js b/src/services/api/api.js index 5106175..93740bb 100644 --- a/src/services/api/api.js +++ b/src/services/api/api.js @@ -13,13 +13,13 @@ import { OPENAI_API_KEY, OPENAI_MAKING_REQUEST } from "@/config/openai"; export default { loginUser: (username, password) => { - return post(USER_LOGIN_URL, { + return post(USER_LOGIN_URL, null, { username, password, }); }, registerUser: (username, password) => { - return post(USER_REGISTER_URL, { + return post(USER_REGISTER_URL, null, { username, password, }); From 87f0f8dfe438fae908adc90bcddcfea84423bbe0 Mon Sep 17 00:00:00 2001 From: Rekord <1324596506@qq.com> Date: Sat, 22 Apr 2023 15:13:18 +0800 Subject: [PATCH 2/2] feat: implement form encryption --- package-lock.json | 6 ++++++ package.json | 1 + src/config/api.js | 4 ++++ src/services/api/api.js | 17 ++++++++++++++--- src/utils/crypto.js | 11 +++++++++++ 5 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 src/utils/crypto.js diff --git a/package-lock.json b/package-lock.json index 32cc86d..136ea19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "core-js": "^3.29.1", "dayjs": "^1.11.7", "element-ui": "^2.15.13", + "jsencrypt": "^3.3.2", "vue": "^2.6.14", "vue-i18n": "^8.28.2", "vue-router": "^3.6.5", @@ -7049,6 +7050,11 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsencrypt": { + "version": "3.3.2", + "resolved": "https://mirrors.cloud.tencent.com/npm/jsencrypt/-/jsencrypt-3.3.2.tgz", + "integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==" + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://mirrors.cloud.tencent.com/npm/jsesc/-/jsesc-2.5.2.tgz", diff --git a/package.json b/package.json index 4de6840..4ccf570 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "core-js": "^3.29.1", "dayjs": "^1.11.7", "element-ui": "^2.15.13", + "jsencrypt": "^3.3.2", "vue": "^2.6.14", "vue-i18n": "^8.28.2", "vue-router": "^3.6.5", diff --git a/src/config/api.js b/src/config/api.js index 79bea92..10b9958 100644 --- a/src/config/api.js +++ b/src/config/api.js @@ -35,3 +35,7 @@ const GROUP_API_URL = "/group"; export const GROUP_ADD_URL = `${GROUP_API_URL}/add`; export const GROUP_LIST_URL = `${GROUP_API_URL}/list`; export const GROUP_SEARCH_URL = `${GROUP_API_URL}/search`; + +// 通用API +const COMMON_API_URL = "/common"; +export const COMMON_PUBLIC_KEY_URL = `${COMMON_API_URL}/public-key` diff --git a/src/services/api/api.js b/src/services/api/api.js index 93740bb..eeb1e21 100644 --- a/src/services/api/api.js +++ b/src/services/api/api.js @@ -8,14 +8,25 @@ import { RELATION_ADD_URL, GROUP_ADD_URL, GROUP_SEARCH_URL, + COMMON_PUBLIC_KEY_URL, } from "@/config/api"; import { OPENAI_API_KEY, OPENAI_MAKING_REQUEST } from "@/config/openai"; +import encrypt from "@/utils/crypto"; export default { - loginUser: (username, password) => { + loginUser: async (username, password) => { + let publicKey; + await get(COMMON_PUBLIC_KEY_URL) + .then((res) => { + publicKey = res.data.data["public-key"]; + }) + .catch((err) => { + console.log("Error: " + err); + }); + return post(USER_LOGIN_URL, null, { - username, - password, + username: encrypt(publicKey, username), + password: encrypt(publicKey, password), }); }, registerUser: (username, password) => { diff --git a/src/utils/crypto.js b/src/utils/crypto.js new file mode 100644 index 0000000..0bf65d3 --- /dev/null +++ b/src/utils/crypto.js @@ -0,0 +1,11 @@ +import JSEncrypt from "jsencrypt"; +function encrypt(publicKey, text) { + // 创建加密实例 + var crypt = new JSEncrypt(); + + // 设置公钥 + crypt.setPublicKey(publicKey); + return crypt.encrypt(text); +} + +export default encrypt;