【发布时间】:2019-01-03 00:26:15
【问题描述】:
我在我的项目中使用 nodeJS 并使用 mongoose 模块连接到 mongo db。使用用户名/密码方法连接工作正常。但是,当更改为 X509 身份验证时,我无法连接到数据库。
连接数据库时抛出错误 - "err":{"name":"MongoError","message":"auth failed","ok":0,"errmsg":"auth failed","code":18}}
node version - v8.11.3
npm version - 5.6.0
Mongo Db version - 3.4.14
mongoose version in package json - "^4.8.7"
下面的代码sn-p,
var mongoose = require("mongoose");
mongoose.Promise = global.Promise
var connection = null;
var dbString = "mongodb://host1:10901,host2:1902/dbname?replicaSet=replset&readPreference=secondaryPreferred";
var fs = require('fs')
connection = mongoose.createConnection(dbString, {
user: encodeURIComponent("C=US,ST=California,O=Company Inc.,OU=management:group.123456,CN=dbname-role-user-repl.mydomain.com"),
auth: { authMechanism: "MONGODB-X509", authSource: '$external' },
server: {
ssl: true,
sslValidate: true,
sslCA: fs.readFileSync(path to CA file),
sslCert: fs.readFileSync(path to cert file),
sslKey: fs.readFileSync(path to kep file),
sslPass: "password"
}
});
connection.once("open", function () {
console.log("App is connected to DB -- " + dbString);
});
connection.once("close", function () {
console.log("App disconnected from DB -- " + dbString);
});
connection.on("error", function (err) {
console.error("App failed to connect to DB -- " + dbString, err);
});
module.exports = {
connection: connection,
mongoose: mongoose
}
有没有其他人遇到过类似的问题?
【问题讨论】:
标签: javascript node.js mongodb mongoose node-modules