import FingerprintJS from '@fingerprintjs/fingerprintjs';

// 初始化指纹识别器
let fpPromise;

function initFingerprint() {
  if (!fpPromise) {
    // 加载指纹识别库
    fpPromise = FingerprintJS.load();
  }
  return fpPromise;
}

// 获取浏览器指纹信息
export async function getBrowserFingerprint() {
  try {
    const fp = await initFingerprint();
    // 获取指纹结果
    const result = await fp.get();
    
    // 返回核心信息：指纹ID和详细特征
    return {
      fingerprint: result.visitorId, // 唯一指纹ID
      components: result.components, // 组成指纹的各特征详情
      confidence: result.confidence.score // 置信度分数（0-1）
    };
  } catch (error) {
    console.error('获取浏览器指纹失败:', error);
    return null;
  }
}

// 持久化存储指纹（结合localStorage提高稳定性）
export async function getStoredFingerprint() {
  // 尝试从本地存储获取
  const stored = localStorage.getItem('browser_fingerprint');
  if (stored) {
    return JSON.parse(stored);
  }
  
  // 生成新指纹并存储
  const fingerprint = await getBrowserFingerprint();
  if (fingerprint) {
    localStorage.setItem('browser_fingerprint', JSON.stringify(fingerprint));
  }
  return fingerprint;
}
