Skip to content

A package to generate tokens to store temporary data in redis

Notifications You must be signed in to change notification settings

MusicMapIo/redistoken

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Store data in redis under a random key

Generates a random token to store some data under in redis. Things that this module can be used for:

  • Saving session data
  • Generating a token for use in email verification
  • Saving flash messages

This module was made after having to do very similar things multiple times in the web applications I work on. Mostly these are related to user management actions, like the email verification link or single use login tokens for mobile apps.

Install

$ npm install --save redistoken

Usage

var RedisToken = require('redistoken');

// Create a data store
var dataStore = new RedisToken({
	prefix: 'mydata'
});

// Set a key
dataStore.set('data', function(err, token) {
	if (err) {
		return console.log(err);
	}

	// Give the token to whoever is going to 
	// fetch this data in the future, usually either 
	// as a browser cookie or in the response body 
	// for an api.
	
});

// Get the data
dataStore.get(token, function(err, data) {
	if (err) {
		return console.log(err);
	}

	console.log(data); // 'data'
});

Options

All options below are showing their default values.

var dataStore = new RedisToken({
	redisPort: undefined, // The redis server port
	redisHost: undefined, // The redis server host
	redisOpts: {}, // The redis server connection options
	prefix: '', // Key prefix
	expires: 60, // Key expiration
	onReady: noop, // Redis connection events
	onConnect: noop,
	onError: noop,
	strongKey: false, // Should it generate a cryptographically secure key
	len: 16, // The length of the generated token
	singleUse: true, // Delete the key after successful get
	stringifyData: true, // JSON stringify the data before saving, parse on get
});

Tests

$ npm test
$ REDIS_HOST="192.168.59.103" REDIS_PORT="6370" mocha

The test are run with mocha and use a docker container to run redis. On my machine I run docker in boot2Docker, which starts on 192.168.59.103. You can see this IP in the package.json, edit this to suite your environment. To run these tests you will need to setup boot2docker and run npm run docker-redis-pull once before getting started. Optionally you can just run mocha directly with the second command above.

About

A package to generate tokens to store temporary data in redis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published