diff --git a/dist.zip b/dist.zip
deleted file mode 100644
index cd836a6..0000000
Binary files a/dist.zip and /dev/null differ
diff --git a/package-lock.json b/package-lock.json
index b676d66..2be6a68 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,6 +14,7 @@
"autoprefixer": "^10.4.21",
"axios": "^0.27.2",
"code-inspector-plugin": "^0.20.12",
+ "crypto-js": "^4.2.0",
"element-plus": "^2.2.27",
"js-cookie": "^3.0.1",
"livekit-client": "^2.7.5",
@@ -1597,6 +1598,11 @@
"node": ">= 8"
}
},
+ "node_modules/crypto-js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz",
diff --git a/package.json b/package.json
index e72c4bb..b1b0693 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"autoprefixer": "^10.4.21",
"axios": "^0.27.2",
"code-inspector-plugin": "^0.20.12",
+ "crypto-js": "^4.2.0",
"element-plus": "^2.2.27",
"js-cookie": "^3.0.1",
"livekit-client": "^2.7.5",
diff --git a/src/components/Login/index.vue b/src/components/Login/index.vue
index 409908f..7cc0ed3 100644
--- a/src/components/Login/index.vue
+++ b/src/components/Login/index.vue
@@ -27,14 +27,17 @@
\ No newline at end of file
diff --git a/src/views/login.vue b/src/views/login.vue
index a8488ee..605e252 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -40,15 +40,20 @@
import useUserStore from '@/stores/modules/user'
import { watch, ref, getCurrentInstance, onMounted } from 'vue'
import { useRoute, useRouter } from 'vue-router'
-import { ElNotification } from 'element-plus'
-import { getInfo } from "@/api/login";
-
+import { ElNotification,ElMessage } from 'element-plus'
+import { getInfo } from "@/api/login";
+import CryptoJS from 'crypto-js';
+import { useMeterStore } from '@/stores/modules/meter'
+
const userStore = useUserStore()
const router = useRouter()
const route = useRoute()
const { proxy } = getCurrentInstance()
const showLogin = ref(false)
+const meterStore = useMeterStore()
+
+
const redirect = ref(undefined);
const loginView = ref(false)
@@ -73,14 +78,30 @@ function handleLogin() {
proxy.$refs.loginRef.validate((valid) => {
if (valid) {
loading.value = true
+ if(!localStorage?.getItem('UDID')){
+ ElMessage({
+ message: '服务错误,请刷新页面',
+ type: 'warning',
+ })
+ return
+ }
+ const secretKey = ((loginForm.value.username + localStorage?.getItem('UDID')).toLowerCase()).replaceAll('-', ''); // 用户名+UDID(32位16进制,全小写)
+
+ const randomChars = generateRandomChars(6);
+
+ const message = `Gx${randomChars}${loginForm.value.password}`;
+
+ const ciphertext = CryptoJS.Blowfish.encrypt(message, secretKey).toString();
+ console.log(secretKey,message,ciphertext)
// 调用action的登录方法
userStore
.login({
- password: loginForm.value.password,
+ // password: loginForm.value.password,
+ password: ciphertext,
username: loginForm.value.username,
})
- .then(async (res) => {
- const userInfo = JSON.parse(localStorage.getItem('userData'))
+ .then(async (res) => {
+ const userInfo = JSON.parse(sessionStorage.getItem('userData'))
router.push({
path: '/coordinate',
})
@@ -99,6 +120,16 @@ function handleLogin() {
requestNotificationPermission()
}
+// 生成随机字符串
+function generateRandomChars(length) {
+ const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ let result = '';
+ for (let i = 0; i < length; i++) {
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
+ }
+ return result;
+}
+
/**
* @description 请求浏览器的通知权限
* @returns {*}
@@ -113,6 +144,7 @@ function requestNotificationPermission() {
onMounted(async () => {
+ meterStore.initUdid()
try {
loginView.value = true
const res = await getInfo("self");
@@ -125,8 +157,8 @@ onMounted(async () => {
// query: { room_uid: 'nxst-ok4j' }
// })
router.push({
- path: '/coordinate',
- })
+ path: '/coordinate',
+ })
}
loginView.value = false
} catch (err) {