Napoleonic Panda Machine

browser_fingerprint

1.0.4 • Public • Published

Browser Fingerprint

Build Status Greenkeeper badge

NPM

Note: This package requires node v8, as it makes uses of native classes.

This module attempts to uniquely identify browsers by examining their header and connection information. This information can be used as a "poor-man's" session identifier in your node projects. This module can optionally set a cookie to 'lock' in a consistent fingerprint.

Resuming sessions require that either the cookie be returned to the server, or a x-header x-__browserFingerprint in the default case, be sent on subsequent requests

const http = require('http')
const port = 8080
 
const BrowserFingerprint = require('browser_fingerprint')
 
// these are the default options
const options = {
  cookieKey: '__browser_fingerprint',
  toSetCookie: true,
  onlyStaticElements: true,
  settings: {
    path: '/',
    expires: 3600000,
    httpOnly: null
  }
}
 
const fingerprinter = new BrowserFingerprint(options)
 
http.createServer((req, res) => {
  let {fingerprint, elementHash, headersHash} = fingerprinter.fingerprint(req)
  headersHash['Content-Type'] = 'text/plain' // append any other headers you want
  res.writeHead(200, headersHash)
 
  let resp = `Your Browser Fingerprint: ${fingerprint} \r\n\r\n`
  for (let i in elementHash) { resp += `Element ${i}${elementHash[i]}\r\n` }
 
  res.end(resp)
  console.log('requset from ' + req.connection.remoteAddress + ', fingerprint -> ' + fingerprint)
}).listen(port)
 
console.log(`server running at http://127.0.0.1:${port}`)

install

npm i browser_fingerprint

Downloadsweekly downloads

731

version

1.0.4

license

Apache-2.0

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability