【问题标题】:ReferenceError navigator is not defined for FingerprintJS没有为 FingerprintJS 定义 ReferenceError 导航器
【发布时间】:2018-04-20 18:46:52
【问题描述】:

我正在尝试借助 JavaScript 中的 npm 模块 fingerprintjs2 获取浏览器指纹。但它给了我以下错误:-

ReferenceError: navigator is not defined

日志:

代码:

const Fingerprint = require('fingerprintjs2');
const express = require('express');
const cors = require('cors');
const mysql = require('mysql');
const app = express();

const fpInstance = new Fingerprint();
fpInstance.get((result,err)=>{
    if(err){
        console.log('Error obtained',err)
    }
    else{
        console.log(result)
    } 
})

【问题讨论】:

  • 您可能需要在fingerprintjs2 之前加载express,因为它为node.js 添加了浏览器兼容性功能。
  • 我试过这样做,但它仍然给我同样的错误!!
  • 听起来指纹js2是为在浏览器中运行而设计的,这取决于node.js中不存在的东西。

标签: javascript node.js reactjs express fingerprintjs2


【解决方案1】:

我发现fingerprintjs2 是一个 Javascript 库,在 Node.js 中不能正常工作。幸运的是,已经发布了相同的服务器端版本,即Fingerprint express middleware,用于所谓的被动指纹识别

安装: npm install express-fingerprint

用法:

var Fingerprint = require('express-fingerprint')

app.use(Fingerprint({
    parameters:[
        // Defaults
        Fingerprint.useragent,
        Fingerprint.acceptHeaders,
        Fingerprint.geoip,

        // Additional parameters
        function(next) {
            // ...do something...
            next(null,{
            'param1':'value1'
            })
        },
        function(next) {
            // ...do something...
            next(null,{
            'param2':'value2'
            })
        },
    ]
}))

app.get('*',function(req,res,next) {
    // Fingerprint object
    console.log(req.fingerprint)
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    相关资源
    最近更新 更多