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) {