为使用 Bcrypt 和护照登录的 Node.js 应用程序创建用户信息的 JSON 文件(MongoDb 集合)

Creating a JSON file(MongoDb Collection) of User Info for a Node.js application that uses Bcrypt and passport for login

我会尽量把这个问题说得简短明了。我有一个 node.js 项目,它使用猫鼬连接到 MongoDB 的非本地实例。我已经为用户编写了使用护照模块登录的代码。我创建了一个 JSON 文件作为用户集合。当我登录时出现此错误

throw "Not a valid BCrypt hash."

所以,如果我只想创建一个 JSON 用户文件来处理这个问题,我该怎么做呢?我的最终目标是将 RDBMS 转换为 MongoDB。刚从用户 table 开始。我知道如果我要注册新用户,我可以创建一个函数来散列他们的密码,例如

newUser.password= createHash(password)

    var createHash = function(password){
            return bCrypt.hashSync(password, bCrypt.genSaltSync(10), null);
        }

或类似的东西。摘要:如何为 MongoDB 创建一个 JSON 用户信息文件,它可以与 bcrypt 哈希和护照一起使用?

var fs = require('fs');
var bc = require('bcrypt-nodejs')

fs.readFile('users.txt',function(err,data){
   var x = [];
   if(err) throw err;
   var buf = new Buffer(data);
   x = buf.toString();
   x = JSON.parse(x);
   //console.log(x);
   for(var a in x){
    x[a].password=createHash(x[a].password);
   }
   x = JSON.stringify(x);
   fs.writeFile('users.txt',x,callback()); //or just push directly to db?
});

var createHash = function(password){
            return bc.hashSync(password, bc.genSaltSync(10), null);
        }

function callback(){
    console.log('finished');
}

刚刚读入我的用户信息,加密了密码并创建了一个新文件。放在 Mongo 中。希望这对其他人有帮助。如果有人对我有更好的解决方案,我将不胜感激。