【问题标题】:How to get browser fingerprint from clientJS in react application?如何在反应应用程序中从 clientJS 获取浏览器指纹?
【发布时间】:2020-06-26 21:34:40
【问题描述】:

我正在尝试使用 clientJS 从反应应用程序中获取浏览器指纹。当我导入 clientJS 模块并尝试访问获取指纹功能时,它会抛出错误说 Get Finger Print is not a function。但是如果我从window.ClientJS() 创建一个clientJS 实例。我能够生成指纹。为什么我无法从 ClientJS 的实例中获取指纹功能?

不工作

import ClientJS from "clientjs";

const client = new ClientJS()

const fingerPrint = client.getFingerprint()

console.log(客户端)

工作

import ClientJS from "clientjs";

const client = new ClientJS()
const windowClient = new window.ClientJS();

const fingerPrint = windowClient.getFingerprint()

console.log(windowClient);

【问题讨论】:

    标签: javascript reactjs browser fingerprintjs2


    【解决方案1】:

    我对客户端 Js 做的不多,但我构建了一个小包,您可以使用它轻松获取浏览器指纹。

    您可以在任何前端应用程序中使用它。

    这里有https://github.com/successtar/browser-signature

    【讨论】:

    • 很棒的包人,但如果我打开一个隐身窗口,那么指纹就会改变。有什么方法可以使指纹保持不变?
    【解决方案2】:

    这在反应应用程序中对我有用

    import ClientJS from 'clientjs'
    import { useState, useEffect } from 'react'
    
    let clientJs: any
    
    const MyComponent = () => {
       const [fingerprint, setFingerprint] = useState('')
       
       useEffect(() => {
         clientJs = new ClientJS()
       }, []) // initiate on the first load
    
       setFingerprint(clientJs.getFingerprint)
    }
    

    【讨论】:

      【解决方案3】:

      下面的代码在 React 中为我工作。

      import ClientJS from 'clientjs';
      
      var client = new ClientJS();
      
      client.getBrowser()
      

      【讨论】:

        猜你喜欢
        • 2017-05-12
        • 2011-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-04
        • 2019-05-11
        • 2012-08-26
        • 2012-05-19
        相关资源
        最近更新 更多