首页 文章

具有身份验证的Mongoose会导致超时

提问于
浏览
1

所以我们遇到了一个有趣的问题 . 我们希望在MongoDB层添加身份验证以提高安全性 . 但我们没有得到有利的结果 .

Pre-Setup

  • 以root身份使用mongo shell(针对admin表)

  • 切换到所需的数据库(applicationdb)

  • 执行db.createUser()

  • 验证用户已成功创建

{“_ id”:“applicationdb.appuser”,“user”:“appuser”,“db”:“applicationdb”,“roles”:[{“role”:“readWrite”,“db”:“applicationdb”}] }

Scenario 1:

  • 更改mongodb.conf,auth = true

  • 重启Mongod服务

  • 使用以下方式连接猫鼬:

mongoose.connect( '的mongodb:// APPUSER:password@xx.xxx.xxx.xxx:27017 / applicationdb');

  • 没有收到连接错误,所以尝试通过Mongoose执行GET导致操作超时而没有任何错误(至少我能找到)

Scenario 2:

  • 更改mongodb.conf,auth = false

  • 重启Mongod服务

  • 使用以下方式连接猫鼬:

mongoose.connect( '的mongodb://xx.xxx.xxx.xxx:27017 / applicationdb');

  • 没有收到连接错误,因此尝试通过Mongoose执行GET并成功返回文档

为什么我们在MongoDB中使用身份验证时会得到此超时并且从未完成请求?

任何帮助都会很棒,我们在这一点上不知所措!

1 回答

  • 1

    您需要使用 --auth 选项重新启动mongo服务,请参阅here

    如果不起作用,请执行以下操作:尝试使用 keepAlive set设置mongoose中的服务器选项 . 见herehere .

相关问题