mirror of
https://github.com/ZeroCatDev/Classworks.git
synced 2025-12-07 13:03:59 +00:00
refactor: 修复fingerpointjs名称被拦截的问题
This commit is contained in:
parent
3d81ddb8f9
commit
d50788c1f5
@ -226,7 +226,7 @@
|
||||
<script>
|
||||
import {ref, onMounted, computed} from "vue";
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getVisitorId } from '@/utils/fingerprint'
|
||||
import { getVisitorId } from '@/utils/visitorId'
|
||||
import packageJson from "../../../package.json";
|
||||
|
||||
export default {
|
||||
|
||||
@ -21,7 +21,7 @@ import {createApp} from 'vue'
|
||||
//import '@examaware-cs/player/dist/player.css'
|
||||
|
||||
import messageService from './utils/message';
|
||||
import { getVisitorId } from './utils/fingerprint';
|
||||
import { getVisitorId } from './utils/visitorId';
|
||||
|
||||
const app = createApp(App)
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { getVisitorId, getFingerprintData } from '@/utils/fingerprint'
|
||||
import { getVisitorId, getFingerprintData } from '@/utils/visitorId'
|
||||
|
||||
const visitorId = ref('')
|
||||
const fingerprintData = ref({})
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
import FingerprintJS from '@fingerprintjs/fingerprintjs'
|
||||
|
||||
let fpPromise
|
||||
|
||||
export const loadFingerprint = () => {
|
||||
if (!fpPromise) {
|
||||
fpPromise = FingerprintJS.load()
|
||||
}
|
||||
return fpPromise
|
||||
}
|
||||
|
||||
export const getVisitorId = async () => {
|
||||
const fp = await loadFingerprint()
|
||||
const result = await fp.get()
|
||||
return result.visitorId
|
||||
}
|
||||
|
||||
export const getFingerprintData = async () => {
|
||||
const fp = await loadFingerprint()
|
||||
const result = await fp.get()
|
||||
return result
|
||||
}
|
||||
48
src/utils/visitorId.js
Normal file
48
src/utils/visitorId.js
Normal file
@ -0,0 +1,48 @@
|
||||
let fpPromise
|
||||
|
||||
const buildFallbackAgent = (error) => ({
|
||||
get: async () => ({
|
||||
visitorId: 'unknown',
|
||||
error: error?.message || String(error || ''),
|
||||
fallback: true,
|
||||
}),
|
||||
})
|
||||
|
||||
const loadFingerprintLib = async () => {
|
||||
try {
|
||||
const mod = await import('@fingerprintjs/fingerprintjs')
|
||||
return mod?.default || mod
|
||||
} catch (err) {
|
||||
console.warn('Fingerprint library blocked or failed to load; using fallback agent.', err)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
export const loadFingerprint = () => {
|
||||
if (!fpPromise) {
|
||||
fpPromise = (async () => {
|
||||
const FingerprintJS = await loadFingerprintLib()
|
||||
if (!FingerprintJS) return buildFallbackAgent(new Error('fingerprint module unavailable'))
|
||||
|
||||
try {
|
||||
return await FingerprintJS.load()
|
||||
} catch (err) {
|
||||
console.warn('FingerprintJS.load failed, using fallback agent.', err)
|
||||
return buildFallbackAgent(err)
|
||||
}
|
||||
})()
|
||||
}
|
||||
return fpPromise
|
||||
}
|
||||
|
||||
export const getVisitorId = async () => {
|
||||
const fp = await loadFingerprint()
|
||||
const result = await fp.get()
|
||||
return result?.visitorId || 'unknown'
|
||||
}
|
||||
|
||||
export const getFingerprintData = async () => {
|
||||
const fp = await loadFingerprint()
|
||||
const result = await fp.get()
|
||||
return result
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user