mongoose-hashed-plugin

mongoose plugins:hash password fields

npm install mongoose-hashed-plugin
1 downloads in the last day
7 downloads in the last week
13 downloads in the last month

mongoose-hashed-field

This plugin let you add a hashed field to your schema. It automatically creates an async setter method for you, as well as a setter virtual property.

Whenever you assign a value to the hashed field, it'll be hashed using bcrypt.

Plugin is intended to simplify the process of saving hashed passwords in the database.

Schema Example

Take this schema as example:

var mongoose    = require('mongoose');
var hashedField = require('../src/hashedField.js');

var UserSchema = new mongoose.Schema({
  name: String
});

UserSchema.plugin( hashedField );

var User = mongoose.model('User', UserSchema);

var me = new User({name: 'John'});

// Save the hashed value of secret in a new field named password_hashed
// password is not saved in DB, only password_hashed
me.password = 'secret';

Later you can authenticate a password using an auto generated authenticate method:

me.authenticate( 'guess', function(err, result) {
  // true if guess matches hashed password
  console.log( result );
});

Plugin Options

You can pass the following options to Schema#plugin when creating the hashedField plugin:

  1. field: a virtual setter name (defaults to password)
  2. authMethod: the name for the authentication method (defaults to authenticate)
  3. hashed_name: the real name of the hashed field in the DB (defaults to field_hash)
  4. salt: salt value to pass on to bcrypt (defaults to 8)
  5. setter: [optional] async setter function name

Author

Ynon Perek

npm loves you