From fb6dc34ad6fc38934f95aa79df5f9eb9219f46ca Mon Sep 17 00:00:00 2001 From: linfso Date: Sun, 12 May 2024 05:18:44 +0800 Subject: [PATCH] md --- README.md | 4 ++ package.json | 1 + src/api/login.js | 5 ++- src/store/modules/user.js | 5 ++- src/views/emis/emisUser/editForm.vue | 4 +- src/views/login.vue | 59 ++++++++-------------------- src/views/system/dict/data.vue | 1 + src/views/system/role/index.vue | 10 ++++- 8 files changed, 40 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 2059af2f..12ebe833 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,10 @@ npm install --save @antv/hierarchy npm install vue-chartjs +npm install uuid --save + +npm i @fingerprintjs/fingerprintjs + ``` npm install -save dayjs diff --git a/package.json b/package.json index cb0d27a5..0ae73b0e 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "@antv/layout": "^0.3.23", "@antv/x6": "^2.13.1", "@antv/x6-vue-shape": "^2.1.1", + "@fingerprintjs/fingerprintjs": "^4.3.0", "@riophae/vue-treeselect": "0.4.0", "axios": "0.24.0", "clipboard": "2.0.8", diff --git a/src/api/login.js b/src/api/login.js index 674502b2..95c3c18a 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -1,14 +1,17 @@ import request from '@/utils/request' import { encrypt } from '@/utils/jsencrypt' +import { Base64 } from "js-base64" // 登录方法 -export function login(mwname, mwpwd, code, uuid,pdomain) { +export function login(mwname, mwpwd, code,mMacCode, uuid,pdomain) { let username = encrypt(mwname) let password = encrypt(mwpwd) + let macCode = Base64.encode(mMacCode) const data = { username, password, code, + macCode, uuid, pdomain } diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 070cc126..465c397b 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -49,9 +49,10 @@ const user = { const password = userInfo.password const code = userInfo.code const uuid = userInfo.uuid + const macCode = userInfo.macCode const pdomain = userInfo.pdomain return new Promise((resolve, reject) => { - login(username, password, code, uuid,pdomain).then(res => { + login(username, password, code,macCode, uuid,pdomain).then(res => { setToken(res.token) commit('SET_TOKEN', res.token) resolve() @@ -96,6 +97,8 @@ const user = { return new Promise((resolve, reject) => { getInfo().then(res => { const user = res.user + + localStorage.setItem('TnMacCode', user.ecomputid); // const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile4.png") : process.env.VUE_APP_BASE_API + user.avatar; const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile4.png") : user.avatar; diff --git a/src/views/emis/emisUser/editForm.vue b/src/views/emis/emisUser/editForm.vue index 68fbf0d3..87bc2c0e 100644 --- a/src/views/emis/emisUser/editForm.vue +++ b/src/views/emis/emisUser/editForm.vue @@ -72,8 +72,8 @@ 否 - - + + diff --git a/src/views/login.vue b/src/views/login.vue index 8fb948e7..f0b579f0 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -333,12 +333,16 @@ import { getLocalIp } from "@/utils/custom"; import Cookies from "js-cookie"; import { encrypt, decrypt } from '@/utils/jsencrypt' +import FingerprintJS from '@fingerprintjs/fingerprintjs' // 引入 +const uuidv4 = require("uuid/v4"); // 导入uuid生成插件 + export default { name: "Login", data() { return { zoneConfig:{}, + pdomain:null, codeUrl: "", localIp:null, loginForm: { @@ -347,6 +351,7 @@ export default { rememberMe: false, code: "", uuid: "", + macCode:"", pdomain:"" }, loginRules: { @@ -414,64 +419,31 @@ export default { }, created() { document.title="系统登录"; - this.zoneConfig=this.$store.state.zoneConfig; const domain = this.zoneConfig.zoneDomain; let domainPrefix = null; if(domain === undefined){ - domainPrefix = process.env.VUE_APP_PDOMAIN + this.zoneConfig.zoneDomain=process.env.VUE_APP_PDOMAIN; } else{ domainPrefix = domain.substring(0, domain.indexOf('.')) + this.zoneConfig.zoneDomain=domainPrefix; this.loginForm.pdomain = domainPrefix this.loginForm2.pdomain = domainPrefix } this.getCode(); this.getCookie(); this.initMacId(); + }, methods: { - initMacId(){ - const offerOptions = { - offerToReceiveAudio: 1, - offerToReceiveVideo: 1 - }; - - // 创建 RTCPeerConnection [对象](https://geek.csdn.net/educolumn/04c51611e4b730957464192e0307b82c?spm=1055.2569.3001.10083) - const pc = new RTCPeerConnection(); - - // 创建 offer - pc.createOffer(offerOptions) - .then(offer => { - // 成功生成 offer - return pc.setLocalDescription(offer); - }) - .then(() => { - // 处理 offer - const localDescription = pc.localDescription; - console.log('Generated offer:', localDescription); - // ... - }) - .catch(error => { - // 处理错误 - console.error('Error generating offer:', error); - }); - - }, - initMacId1(){ - getLocalIp(function(ip){ - this.localIp=ip; - console.log(this.localIp) - // li.textContent = ip; - //local IPs - // if (ip.match(/^(192\.168\.|169\.254\.|10\.|172\.(1[6-9]|2\d|3[01]))/)) - // document.getElementsByTagName("ul")[0].appendChild(li); - // //assume the rest are public IPs - // else - // document.getElementsByTagName("ul")[1].appendChild(li); - }); - + async initMacId(){ + const fp = await FingerprintJS.load() + const result = await fp.get() + const macCode = result.visitorId + let TnMacCode=localStorage.getItem('TnMacCode')||''; + this.loginForm.macCode=TnMacCode+"###"+macCode; }, getCode() { getCodeImg().then(res => { @@ -534,7 +506,7 @@ export default { if (this.loginForm.rememberMe) { Cookies.set("username", this.loginForm.username, { expires: 30 }); Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 }); - Cookies.set("pdomain", pdomain, { expires: 30 }); + Cookies.set("pdomain", this.zoneConfig.zoneDomain, { expires: 30 }); Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 }); } else { Cookies.remove("username"); @@ -542,6 +514,7 @@ export default { Cookies.remove('rememberMe'); Cookies.remove('pdomain'); } + this.$store.dispatch("Login", this.loginForm).then(() => { this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); }).catch(() => { diff --git a/src/views/system/dict/data.vue b/src/views/system/dict/data.vue index fa6eeeae..5740baeb 100644 --- a/src/views/system/dict/data.vue +++ b/src/views/system/dict/data.vue @@ -225,6 +225,7 @@ diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index a21a17a3..61064ba9 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -103,7 +103,12 @@ - + + + +