mirror of
https://github.com/ZeroCatDev/Classworks.git
synced 2025-12-08 13:49:37 +00:00
refactor: 修复fingerpointjs名称被拦截的问题
This commit is contained in:
parent
3d81ddb8f9
commit
d50788c1f5
@ -226,7 +226,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import {ref, onMounted, computed} from "vue";
|
import {ref, onMounted, computed} from "vue";
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { getVisitorId } from '@/utils/fingerprint'
|
import { getVisitorId } from '@/utils/visitorId'
|
||||||
import packageJson from "../../../package.json";
|
import packageJson from "../../../package.json";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import {createApp} from 'vue'
|
|||||||
//import '@examaware-cs/player/dist/player.css'
|
//import '@examaware-cs/player/dist/player.css'
|
||||||
|
|
||||||
import messageService from './utils/message';
|
import messageService from './utils/message';
|
||||||
import { getVisitorId } from './utils/fingerprint';
|
import { getVisitorId } from './utils/visitorId';
|
||||||
|
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted } from 'vue'
|
import { ref, onMounted } from 'vue'
|
||||||
import { getVisitorId, getFingerprintData } from '@/utils/fingerprint'
|
import { getVisitorId, getFingerprintData } from '@/utils/visitorId'
|
||||||
|
|
||||||
const visitorId = ref('')
|
const visitorId = ref('')
|
||||||
const fingerprintData = 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