Skip to content

Commit d50788c

Browse files
committed
refactor: 修复fingerpointjs名称被拦截的问题
1 parent 3d81ddb commit d50788c

File tree

5 files changed

+51
-25
lines changed

5 files changed

+51
-25
lines changed

src/components/settings/AboutCard.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@
226226
<script>
227227
import {ref, onMounted, computed} from "vue";
228228
import { useRouter } from 'vue-router'
229-
import { getVisitorId } from '@/utils/fingerprint'
229+
import { getVisitorId } from '@/utils/visitorId'
230230
import packageJson from "../../../package.json";
231231
232232
export default {

src/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {createApp} from 'vue'
2121
//import '@examaware-cs/player/dist/player.css'
2222

2323
import messageService from './utils/message';
24-
import { getVisitorId } from './utils/fingerprint';
24+
import { getVisitorId } from './utils/visitorId';
2525

2626
const app = createApp(App)
2727

src/pages/debug.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
<script setup>
2424
import { ref, onMounted } from 'vue'
25-
import { getVisitorId, getFingerprintData } from '@/utils/fingerprint'
25+
import { getVisitorId, getFingerprintData } from '@/utils/visitorId'
2626
2727
const visitorId = ref('')
2828
const fingerprintData = ref({})

src/utils/fingerprint.js

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/utils/visitorId.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
let fpPromise
2+
3+
const buildFallbackAgent = (error) => ({
4+
get: async () => ({
5+
visitorId: 'unknown',
6+
error: error?.message || String(error || ''),
7+
fallback: true,
8+
}),
9+
})
10+
11+
const loadFingerprintLib = async () => {
12+
try {
13+
const mod = await import('@fingerprintjs/fingerprintjs')
14+
return mod?.default || mod
15+
} catch (err) {
16+
console.warn('Fingerprint library blocked or failed to load; using fallback agent.', err)
17+
return null
18+
}
19+
}
20+
21+
export const loadFingerprint = () => {
22+
if (!fpPromise) {
23+
fpPromise = (async () => {
24+
const FingerprintJS = await loadFingerprintLib()
25+
if (!FingerprintJS) return buildFallbackAgent(new Error('fingerprint module unavailable'))
26+
27+
try {
28+
return await FingerprintJS.load()
29+
} catch (err) {
30+
console.warn('FingerprintJS.load failed, using fallback agent.', err)
31+
return buildFallbackAgent(err)
32+
}
33+
})()
34+
}
35+
return fpPromise
36+
}
37+
38+
export const getVisitorId = async () => {
39+
const fp = await loadFingerprint()
40+
const result = await fp.get()
41+
return result?.visitorId || 'unknown'
42+
}
43+
44+
export const getFingerprintData = async () => {
45+
const fp = await loadFingerprint()
46+
const result = await fp.get()
47+
return result
48+
}

0 commit comments

Comments
 (0)