Uniquely identify browsers

npm install browser_fingerprint
21 downloads in the last day
144 downloads in the last week
815 downloads in the last month


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

    var http = require('http');
    var bf = require('browser_fingerprint');

    // these are the default options
    var options = {
        cookieKey: "__browserFingerprint",
        toSetCookie: true,
        onlyStaticElements: false,

    http.createServer(function (req, res) {
        bf.fingerprint(req, options, function(fingerprint, elementHash, cookieHash){

            cookieHash['Content-Type'] = 'text/plain' // append any other headers you want
            res.writeHead(200, cookieHash);

            var resp = "";
            resp += 'Your Browser Fingerprint: ' + fingerprint + "\r\n\r\n";
            for(var i in elementHash){
                resp += "Element " + i + ": " + elementHash[i] + "\r\n";


            console.log('requset from ' + req.connection.remoteAddress + ', fingerprint -> ' + fingerprint);
    }).listen(8080, '');

    console.log('Server running at' + '\r\n');
npm loves you