如何使用bcrypt或流星中的任何其他方法加密密码(散列)(如果没有帐户 - 密码包)?

时间:2017-08-18 12:45:48

标签: node.js meteor meteor-collection2

我是meteor的新手。我刚刚创建了简单的流星应用程序,其中我想将用户密码保存为哈希字符串,而不是普通密码,我不想使用accounts-password包。以下是我用于用户插入过程的流星方法。

Meteor.methods({'addRecord':function(user) {
    var checkCollection = Users.findOne({},{sort:{userId:-1}});
    if(typeof checkCollection != 'undefined' || checkCollection){
        currentId = Users.findOne({},{sort:{userId:-1}}).userId || "1";
        user.userId = (currentId * 1) + 1;

        bcrypt.genSalt(10, Meteor.bindEnvironment(function (err, salt) {
            if (err)
                return
            bcrypt.hash(user.password, salt, Meteor.bindEnvironment(function (err, hash) {
                if (err)
                    return;
                user.password = hash;
                Users.insert(user);
            }));
        })); 
        return user.userId;
    }
    else {
        user.userId = "1";
        Users.insert(user);
    }
    return 1;
   }
});

以下是我在用户注册路由中的代码:

Meteor.call("addRecord", newuser, function(err, result) {
        if(result) {
            console.log("Successfully added new record with auto_inc id " + result);
            Utility.response(context, 200, {
                'success': true,
                'error': false,
                'successText': 'Signup successful!'
            });
        } else {
            console.log(err);
            Utility.response(context, 200, {
                'success': false,
                'error': true,
                'successText': 'Signup failed!'
            });
        }
    });

但代码不起作用,密码保存为相同的纯文本。

0 个答案:

没有答案