PostgreSQL TokenStore for Passwordless
npm install passwordless-postgrestoreThis 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 PostgreSQL database and are hashed and salted using bcrypt.
First, install the module:
$ npm install passwordless-postgrestore --save
Afterwards, follow the guide for Passwordless. A typical implementation may look like this:
``javascript
var passwordless = require('passwordless');
var PostgreStore = require('passwordless-postgrestore');
passwordless.init(new PostgreStore('postgres://user:password@localhost/database'));
passwordless.addDelivery(
function(tokenToSend, uidToSend, recipient, callback) {
// Send out a token
});
app.use(passwordless.sessionSupport());
app.use(passwordless.acceptToken());
`
`javascript`
new PostgreStore(connectionString, [options]);
connectionString: (String)* Mandatory. PostgreSQL connection string
[options]: (Object)* Optional. Some configuration option. See below exemple
Example:
`javascript`
passwordless.init(new PostgreStore('postgres://user:password@localhost/database', {
pgstore: {
table: 'not_default_table_name', // (String) Optional. Use another table to store token, default is 'passwordless'
pgPoolSize: '100' // (Number) Optional. Postgre client pool size
}
}));
CREATE TABLE passwordless
(
id serial NOT NULL,
uid character varying(160),
token character varying(60) NOT NULL,
origin text NOT NULL,
ttl bigint,
CONSTRAINT passwordless_pkey PRIMARY KEY (id),
CONSTRAINT passwordless_token_key UNIQUE (token),
CONSTRAINT passwordless_uid_key UNIQUE (uid)
)
$ npm test`