MongoDB TokenStore for Passwordless using bcrypt.js
npm install passwordless-mongostore-bcryptjsThis 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.
Tokens are stored in a MongoDB database and are hashed and salted using bcrypt.js. This is an alternative to the bcrypt-node version as the bcrypt-node maintainers have discontinued maintenance and recommend bcrypt.js instead.
First, install the module:
$ npm install passwordless-mongostore-bcryptjs
Afterwards, follow the guide for Passwordless. A typical implementation may look like this:
``javascript
var passwordless = require('passwordless');
var MongoStore = require('passwordless-mongostore-bcryptjs');
var mongoURI = 'mongodb://localhost/passwordless-simple-mail';
passwordless.init(new MongoStore(mongoURI));
passwordless.addDelivery(
function(tokenToSend, uidToSend, recipient, callback) {
// Send out a token
});
app.use(passwordless.sessionSupport());
app.use(passwordless.acceptToken());
`
`javascript`
new MongoStore(uri, [options]);
uri: (string)* MongoDB URI as further described in the MongoDB docs
[options]: (object)* Optional. This can include MongoClient options as described in the docs and the ones described below combined in one object as shown in the example
Example:
`javascript`
var mongoURI = 'mongodb://localhost/passwordless-simple-mail';
passwordless.init(new MongoStore(mongoURI, {
server: {
auto_reconnect: true
},
mongostore: {
collection: 'token'
}
}));
Note that with v3 of Mongo, this is now the name of both the database and the collection that are created.
$ npm test`
Florian Heinemann @thesumofall
Minor updates by Hugh Rundle