denodrivers / mongo

🍃 MongoDB driver for Deno 🦕
https://deno.land/x/mongo
MIT License
508 stars 95 forks source link

authentication error when connecting to localhost #417

Open CaptainTux opened 3 hours ago

CaptainTux commented 3 hours ago

after the V2 release I started trying to slowly migrate to deno, and after fixing all the imports it went great. but I could not connect to mongodb, as I keep getting authentication error on localhost: image

The code is as in the quickstart guide:

const client = new MongoClient();
await client.connect(process.env.MONGO_URI);

I was trying to run the code like this with deno v2.0.0: deno run --env=packages/server/.env --allow-all packages/server/src/main.ts To exhaust all possible options I also ran it with --unsafe without success.

My connection string looks like this mongodb://user:pass@127.0.0.1:27017/?authMechanism=SCRAM-SHA-1&tls=false which is used via SSH forwarding (and yes I also verified that the URI is correct at runtime with console.log).

This error happened both with this package and with the npm:mongodb@6.9.0 package. When using the npm package, the exact same code works in node, so I really don't have a clue what's going on. I also put up a local mongodb in docker without auth, and that one does in fact work.

lucsoft commented 2 hours ago

is there a reason why you define ?authMechanism=SCRAM-SHA-1&tls=false

And if you say it also happens with the nodejs package then can you try to use your mongo uri in MongoDB Compass?

CaptainTux commented 1 hour ago

I proxy through localhost so there is no SSL configured, and in node it didn't work without specifying the auth mechanism. and maybe I should have been more clear, it doesn't work with the npm package when running it with deno, it does connect if I run my app with node 20.17. and I just checked, it does connect with that URI in MongoDBCompass.