在节点应用程序上使用mongoose进行远程mongo身份验证问题

时间:2015-03-31 13:33:42

标签: node.js mongodb mongoose

试图让node-passport-mongoose使用身份验证连接到远程mongodb。

使用以下命令关闭远程mongodb auth时,节点应用连接正常工作

module.exports = {     '网址' :' mongodb:// pubip:27017 / test' };

启用远程mongo身份验证 - 然后我可以使用以下命令从本地shell成功登录:

mongo pubip:27017 / test -u dave -p password

但如果我在我的节点应用中将我的database.js配置更新为:

module.exports = {     '网址' :' mongodb:// dave:password @ pubip:27017 / test' };

我明白了:

/home/ubuntu/semblent/passport/node_modules/mongoose/node_modules/mongodb/lib/server.js:228         process.nextTick(function(){throw err;})                                             ^ 错误     在Error.MongoError(/home/ubuntu/semblent/passport/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:13:17)     在Server.destroy(/home/ubuntu/semblent/passport/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:629:47)     在Server.close(/home/ubuntu/semblent/passport/node_modules/mongoose/node_modules/mongodb/lib/server.js:344:17)     在Db.close(/home/ubuntu/semblent/passport/node_modules/mongoose/node_modules/mongodb/lib/db.js:267:19)     at /home/ubuntu/semblent/passport/node_modules/mongoose/node_modules/mongodb/lib/db.js:196:12     在null。 (/home/ubuntu/semblent/passport/node_modules/mongoose/node_modules/mongodb/lib/server.js:226:9)     在g(events.js:180:16)     在EventEmitter.emit(events.js:98:17)     在null。 (/home/ubuntu/semblent/passport/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:238:68)     at g(events.js:180:16)

任何提示赞赏!!

1 个答案:

答案 0 :(得分:0)

我的坏...... 似乎我没有正确设置我的用户定义 - 这个工作原理:

db.createUser(
    {
      user: "benny",
      pwd: "butter",
      roles: [
         { "role" : "dbAdmin", db: "test" },
         { "role" : "userAdmin", db: "test"},
         { "role" : "readWrite", "db" : "test" }
      ]
    }
) 

之前我错过了readWrite角色 - 我错误地认为你会使用dbAdmin或userAdmin角色来获得它。

相关问题