GithubHelp home page GithubHelp logo

david-a / passwordless-redisstore Goto Github PK

View Code? Open in Web Editor NEW

This project forked from florianheinemann/passwordless-redisstore

0.0 1.0 1.0 14 KB

Storage backend for Passwordless using Redis

Home Page: https://passwordless.net

License: MIT License

JavaScript 100.00%

passwordless-redisstore's Introduction

Passwordless-RedisStore

This module provides token storage for Passwordless, a node.js module for express that allows website authentication without password using verification through email or other means. Visit the project's website for more details.

Tokens are stored in a Redis database and are hashed and salted using bcrypt.

Usage

First, install the module:

$ npm install passwordless-redisstore --save

Afterwards, follow the guide for Passwordless. A typical implementation may look like this:

var passwordless = require('passwordless');
var RedisStore = require('passwordless-redisstore');

passwordless.init(new RedisStore(6379, '127.0.0.1'));

passwordless.addDelivery(
    function(tokenToSend, uidToSend, recipient, callback) {
        // Send out a token
    });

app.use(passwordless.sessionSupport());
app.use(passwordless.acceptToken());

Initialization

new RedisStore([port], [host], [options]);
  • [port]: (Number) Optional. Port of your Redis server. Defaults to: 6379
  • [host]: (String) Optional. Your Redis server. Defaults to: '127.0.0.1'
  • [options]: (Object) Optional. This can include options of the node.js Redis client as described in the docs OR an existing Redis client, and RedisStore options as described below combined in one object as shown in the example

Example:

passwordless.init(new RedisStore(6379, '127.0.0.1', {
	// option of the node.js redis client
    auth_pass: 'password',
    // options of RedisStore
    redisstore: {
        database: 15,
        tokenkey: 'token:'
    }
}));

With existing client:

passwordless.init(new RedisStore(null, null, {
	// existing Redis client
    client: myClient,
    // options of RedisStore
    redisstore: {
        database: 15,
        tokenkey: 'token:'
    }
}));

Options

  • [redisstore.database]: (Number) Optional. Database to be used. Defaults to: 0
  • [redisstore.tokenkey]: (String) Optional. Keys to be used. UIDs will be appended. Defaults to: 'pwdless:UID'

Hash and salt

As the tokens are equivalent to passwords (even though only for a limited time) they have to be protected in the same way. passwordless-redisstore uses bcrypt with automatically created random salts. To generate the salt 10 rounds are used.

Tests

$ npm test

License

MIT License

Author

Florian Heinemann @thesumofall

passwordless-redisstore's People

Contributors

brycejacobs avatar david-a avatar florianheinemann avatar

Watchers

 avatar

Forkers

microsoftware

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.