[英]MongoError : command createIndexes requires authentication - mongodb npm
[英]MongoServerError: command createIndexes requires authentication
我無法讓我當前的 NodeJS 項目連接到我的 MongoDB 數據庫,該數據庫在 conf 文件中啟用了安全授權。
我正在使用 Mongoose.js 連接到數據庫。 閱讀文檔后,我似乎無法弄清楚我錯過了什么。
錯誤:MongoServerError:命令 createIndexes 需要身份驗證
我提前感謝您的幫助:)
下面是我的實現:
我創建了一個對項目數據庫具有讀/寫角色的 db 用戶。
{
_id: 'admin.dbUser',
userId: UUID("1dfdd059-dc4e-48c8-82af-3b9d3b6106fc"),
user: 'dbUser',
db: 'admin',
credentials: {
'SCRAM-SHA-1': {
iterationCount: 10000,
salt: 'blah',
storedKey: 'blah',
serverKey: 'blah'
},
'SCRAM-SHA-256': {
iterationCount: 15000,
salt: 'blah',
storedKey:'blah' ,
serverKey: 'blah'
}
},
roles: [
{ role: 'readWrite', db: 'projectDbLocal' },
{ role: 'read', db: 'projectDbLocal' }
]
},
在我的 app.js 文件中,我有以下代碼:
我還確保我的 app.js 能夠解析存儲 mongo 憑據的環境變量。
//Set MongoDB options
const db_options = {
authSource: 'admin',
auth: {
username: process.env.MONGODBUSER,
password: process.env.MONGODBPASS,
},
useNewURLParser: true,
useUnifiedTopology: true,
};
//Connect to MongoDB
mongoose.connect(process.env.MONGODBURL, db_options);
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', () => {
console.log('Database Connected');
});
我設法弄清楚這里發生了什么。
我正在使用 MongoStore 來管理會話。 正在創建的商店沒有經過身份驗證,這就是我遇到問題的原因。
得到這個工作的結果代碼是:
const sessionConfig = {
secret: 'secret',
resave: false,
saveUninitialized: true,
store: MongoStore.create({
mongoUrl: `mongodb://${mongodbUser}:${mongodbPass}@${process.env.MONGODBURL}/db`,
}),
cookie: {
httpOnly: true,
//secure: true,
expires: Date.now() + 1000 * 60 * 60 * 24 * 7, //one week
maxAge: 180 * 60 * 1000,
},
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.