试图让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)
任何提示赞赏!!
答案 0 :(得分:0)
我的坏...... 似乎我没有正确设置我的用户定义 - 这个工作原理:
db.createUser(
{
user: "benny",
pwd: "butter",
roles: [
{ "role" : "dbAdmin", db: "test" },
{ "role" : "userAdmin", db: "test"},
{ "role" : "readWrite", "db" : "test" }
]
}
)
之前我错过了readWrite角色 - 我错误地认为你会使用dbAdmin或userAdmin角色来获得它。