A browser identification library.

  • ubid

Downloads in past


1800.1.29 years ago10 years agoMinified + gzip package size for ubid in KB


ubid - Unique Browser ID
Attempts to generate a number of unique identifiers for a given browser.
These identifiers are useful for when cookies and/or local storage have been disabled. For instance, Apple has started doing this for all third-party websites shown in iframes. Although that may help privacy to some degree (arguably, not enough of a degree given this module), it can also render parts of sites unusable for legitimate purposes to users.
var ubid = require( 'ubid' );

ubid.get( function( error, signatureData ) {
    if ( error ) {
        console.error( error );
    // dump for example
    console.log( signatureData );
} );

Would produce:
    "random": {
        "signature": "0d9444a0-c566-4c87-a2c6-406b2e12a26a"
    "browser": {  
        "signature": "fe90bcf955cc65b51f1adc1ca374f163e09a29c6d173e25c783c9c5c77badada"
    "canvas": {
        "signature": "db5991b6bb503650bf69b285a6c0f895f11b73c135c112905241f60835be2652"

Let's break them down:
  • random

This is a random guid assigned to the browser. This will change each time unless localStorage is true, in which case this is the best identifier to use since it is almost certainly guaranteed to be unique and to persist.
This is also a best case for private browsing modes in that this id will differ from normal browsing (this is normally desirable).
  • canvas

This is a unique id generated by rendering some fonts and colors to an HTML5 canvas and hashing the result. According to various sources (eg: https://www.browserleaks.com/canvas) this can be a fairly reliable unique identifier due to the variances in how different graphics cards and systems will render the results.
  • browser

This is a unique id generated by joining and hashing a number of browser attributes. This is most likely the least unique identifier and should be the last resort for identifing a particular user/browser.