Skip to content

Instantly share code, notes, and snippets.

@joynal
Created October 22, 2016 15:20
Show Gist options
  • Save joynal/aaf78a12e72da7b6fa3b12008a5825a1 to your computer and use it in GitHub Desktop.
Save joynal/aaf78a12e72da7b6fa3b12008a5825a1 to your computer and use it in GitHub Desktop.
'use strict';
const bcrypt = require('bcrypt');
const crypto = require('crypto');
function createNewUser(db, data){
let user = db.createUser({
name: data.name,
email: data.email,
password: makeHash(data.password),
});
if(user) return sanitizeUserData(user);
return false;
}
function makeHash(key, salt_length = 10){
return bcrypt.genSalt(salt_length, function(err, salt) {
return bcrypt.hash(key, salt, function(err, hash) {
return hash;
});
});
}
function sanitizeUserData(user) {
return user;
}
@ikrum
Copy link

ikrum commented Oct 23, 2016

Using sync

var salt = bcrypt.genSaltSync(10);
var password = sha1(doc.password+salt);

At Async return wont work. you have to use callback or promise

function makeHash(key, salt_length = 10, callback){
    bcrypt.genSalt(salt_length, function(err, salt) {
        bcrypt.hash(key, salt, function(err, hash) {
            callback(hash);
        });
    });
}

For nested callbacks use bluebird promise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment