Mongoose: MongoError: Otentikasi gagal

Dibuat pada 2 Okt 2016  ·  10Komentar  ·  Sumber: Automattic/mongoose

Saya memiliki mongodb di mongolab.
Jika saya menghubungkannya dengan perintah

mongo uri/$db -u user -p pass

tidak apa-apa.
Jika saya menggunakan luwak dan terhubung dengan

mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}')

Saya memiliki kesalahan

MongoError: Authentication failed

Saya menggunakan luwak 4.6.1

needs clarification

Komentar yang paling membantu

Hmm juga basis data apa yang ditentukan pengguna? Pengguna MongoDB tercakup dalam dbs, bahkan jika mereka memiliki hak lintas db, jadi jika pengguna yang Anda miliki tidak ditentukan pada db Anda harus meletakkan sesuatu seperti mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authSource=admin') jika pengguna didefinisikan pada 'admin' db.

Juga, jika Anda menggunakan mongodb 3.x, Anda mungkin menggunakan auth SCRAM-SHA-1 atau tidak. Coba kedua hal di bawah ini:

  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=SCRAM-SHA-1')
  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=MONGODB-CR')

Semua 10 komentar

Juga, saya telah memeriksa - bug tidak direproduksi dalam versi 4.4.20 . Ini bekerja dengan benar

Apakah nama pengguna dan kata sandi Anda menyertakan karakter non alfanumerik? Masalah serupa telah muncul di masa lalu dengan penanganan karakter seperti: dalam kata sandi

Juga, luwak dan mongodb versi berapa?

Mongodb 'v3'
Tidak, tidak ada simbol non-alfanumerik.

Hmm juga basis data apa yang ditentukan pengguna? Pengguna MongoDB tercakup dalam dbs, bahkan jika mereka memiliki hak lintas db, jadi jika pengguna yang Anda miliki tidak ditentukan pada db Anda harus meletakkan sesuatu seperti mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authSource=admin') jika pengguna didefinisikan pada 'admin' db.

Juga, jika Anda menggunakan mongodb 3.x, Anda mungkin menggunakan auth SCRAM-SHA-1 atau tidak. Coba kedua hal di bawah ini:

  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=SCRAM-SHA-1')
  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=MONGODB-CR')

@vkarpov15 , Ya, itu membantu! Terima kasih banyak!

Saya telah membuat koneksi ke cloud.mongodb.com dengan node.js tetapi saya tidak mengerti mengapa dan bagaimana saya membuat 2 koneksi yang berhasil tetapi di lain waktu koneksi tidak berhasil.
image

Di Konsol saya melihat

opsi server/replset/mongos tidak digunakan lagi, semua opsinya didukung di tingkat atas objek opsi [poolSize,ssl,sslValidate,sslCA,sslCert,sslKey,sslPass,sslCRL,autoReconnect,noDelay,keepAlive,connectTimeoutMS,fa
mily,socketTimeoutMS,reconnectTries,reconnectInterval,ha,haInterval,replicaSet,secondaryAcceptableLatencyMS,acceptableLatencyMS,connectWithNoPrimary,authSource,w,wtimeout,j,forceServerObjectId,serializeFunctions,abaikanUndefined,mentah,bu
fferMaxEntries,readPreference,pkFactory,promiseLibrary,readConcern,maxStalenessSeconds,loggerLevel,logger,promoteValues,promoteBuffers,promoteLongs,domainsEnabled,keepAliveInitialDelay,checkServerIdentity,validateOptions,appname,auth]

(node:3268) UnhandledPromiseRejectionWarning: Penolakan janji yang tidak ditangani (id penolakan: 1): MongoError: otentikasi gagal
(node:3268) DeprecationWarning: Penolakan janji yang tidak ditangani tidak digunakan lagi. Di masa mendatang, penolakan janji yang tidak ditangani akan menghentikan proses Node.js dengan kode keluar bukan nol.

saya mencobanya, tetapi tidak berhasil,

luwak v4.5.3
mongodb v3.4.7

errMsg:
MongoError: Authentication failed. 14|gougouS | at Function.MongoError.create (/www/website/gougouServer/source/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)

cukup tambahkan ?authSource=yourDB&w=1 ke akhir url db

mongoose.connect('mongodb://user:password@host/yourDB?authSource=yourDB&w=1')
ini bekerja untuk saya. &w=1 itu penting

cukup tambahkan ?authSource=yourDB&w=1 ke akhir url db

mongoose.connect('mongodb://user:password@host/yourDB?authSource=yourDB&w=1')
ini bekerja untuk saya. &w=1 itu penting

Terima kasih Pak. :3 jawaban yang bagus

Apakah halaman ini membantu?
0 / 5 - 0 peringkat