Generate a hash from an express Request or http.IncomingMessage
- Highly configurable
- Options to hand-pick / filter which headers and cookies to use in order to create the hash
- BYO serialization, encoding and hashing algorithm with sane defaults
- Works with any http.IncomingMessage or express.Request
$ npm install --save request-hash
Here's a simple example using an express app:
const requestHash = require('request-hash');
const express = require('express')
const app = express()
const port = 3000
// Initialize hash method using custom options
const hash = requestHash({ serializer: JSON.stringify, algorithm: 'md5' });
app.get('/', (req, res) => res.send(hash(req)))
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
The API exposes an initialization function which receives the options in order to customize the hash, this main funciton returns another function that actually performs the hashing.
const requestHash = require('request-hash');
requestHash({
algorithm: 'sha256',
encoding: 'hex',
expand: false,
cookies: undefined, // undefined means all cookies are going to be used as-is
headers: undefined, // undefined means all headers are going to be used as-is
serializer: undefined // undefined means custom serialize function is going to be used
});
- algorithm:
<string>
Defines which hash algorithm to use, possible values depends on the supported OpenSSL version in the platform. Examples aresha256
,sha512
,md5
, etc. - digest:
<string>
Defines a custom encoding to be used, possible values are:hex
,latin1
,base64
. - serializer
<function>
An object serialization function to be used, if undefined uses a custom implementation - expand:
<boolean>
Allows you to bypass the hash algorithm, just returns the concatenated elements - cookies:
<array>
List of cookie keys to be used to create the unique hash, defaults to using all elements - headers:
<array>
List of header keys to be used to create the unique hash, defaults to using all elements
const requestHash = require('request-hash');
const hash = requestHash();
hash(req);
MIT © Ruy Adorno