1.0.1 • Published 6 years ago

cookie-encrypter v1.0.1

Weekly downloads
6,217
License
ISC
Repository
github
Last release
6 years ago

cookie-encrypter

npm npm

Transparently encrypt/decrypt your cookie using an express middleware to set after the cookie-parser. Support all type of cookie (including http-only and signed) with string content or JSON. Use aes256 as the default encryption algorithm (internally use the nodejs crypto module).

Installation

$ npm install cookie-encrypter

Example

Easy to use:

const express = require('express');
const cookieParser = require('cookie-parser');
const cookieEncrypter = require('./cook');
const app = express();
const secretKey = 'foobarbaz12345';

app.use(cookieParser(secretKey));
app.use(cookieEncrypter(secretKey));

app.get('/setcookies', function(req, res) {
  const cookieParams = {
    httpOnly: true,
    signed: true,
    maxAge: 300000,
  };

  // Set encrypted cookies
  res.cookie('supercookie', 'my text is encrypted', cookieParams);
  res.cookie('supercookie2', { myData: 'is encrypted' }, cookieParams);

  // You can still set plain cookies
  res.cookie('plaincookie', 'my text is plain', { plain: true });
  res.cookie('plaincookie2', { myData: 'is plain' }, { plain: true });

  res.end('new cookies set');
})

app.get('/getcookies', function(req, res) {
  console.log('Decrypted cookies: ', req.signedCookies)
  console.log('Plain cookies: ', req.cookies)
});

You can find a ready-to-use example here Think about the npm install before running it ;)

API

cookieEncrypter(secret, options)

  • secret a string or array used for encrypting cookies.
  • options an optional object to set options for encryption.
  • options.algorithm algorithm used to encrypt cookie data (any algorithm supported by OpenSSL). aes256 used as the default one.

cookieEncrypter.encryptCookie(str, options)

Encrypt a cookie value and return it. An options.algorithm can optionaly be passed to specify an algorithm to use for the encryption.

cookieEncrypter.decryptCookie(str, options)

Decrypt a cookie value and return it. An options.algorithm can optionaly be passed to specify an algorithm to use for the decryption.

CHANGELOG

See the changelog

1.0.1

6 years ago

1.0.0

6 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago