Evercookie Middleware for Connect/Express JS
Express is a sinatra inspired web development framework for node.js, insanely fast, flexible, and simple. Evercookie is a Javascript API that produces extremely persistent cookies in a browser. It is written in JavaScript and additionally uses a SWF (Flash) object for the Local Shared Objects and, originally, PHPs for the server-side generation of cached PNGs and ETags.
This middleware port original PHP script to Connect/Express JS
Support
Usage
Install
npm install --save evercookie
In your code
Evercookie backend middleware needs cookie, thus cookieParser()
middleware must come before Evercookie backend middleware.
In addition, express server must serve front end assets, such as index.html and evercookie.js as well.
var express = require('express');
var evercookie = require('evercookie');
const cookieParser = require('cookie-parser')
var app = express();
app.use(cookieParser());
app.use(evercookie.backend());
app.use(express.cookieParser());
app.use(express.static(__dirname + '/public')); // be careful, you may want to use path.join instead!
Settings
Customized settings can be used, but up to this moment, it makes no sense to change the dafault one,
as all these values are hardcoded in (frontend) evercookie.js
.
//...
app.use(evercookie.backend({
pngCookieName: 'evercookie_png',
etagCookieName: 'evercookie_etag',
cacheCookieName: 'evercookie_cache',
pngPath: '/evercookie_png.php',
etagPath: '/evercookie_etag.php',
cachePath: '/evercookie_cache.php'
}));
//...
Contributing
Acknowledgement
- Samy Kamkar for his awesome idea and implementation of Evercookie
- TJ Holowaychuk for his awesome Express framework
- Ryan Dahl, Joyent and the whole Node.js community