Mongoose with Authentication 导致超时
Posted
技术标签:
【中文标题】Mongoose with Authentication 导致超时【英文标题】:Mongoose with Authentication causes timeout 【发布时间】:2016-11-10 06:12:39 【问题描述】:所以我们遇到了一个有趣的问题。我们想在 MongoDB 层添加身份验证以提高安全性。但是我们没有得到一个好的结果。
预设置
-
以 root 身份使用 mongo shell(针对管理表)
切换到所需的数据库 (applicationdb)
执行 db.createUser()
验证用户创建成功
"_id" : "applicationdb.appuser", “用户”:“应用用户”, “数据库”:“应用程序数据库”, “角色”:[ “角色”:“读写”, “数据库”:“应用程序数据库” ]
场景 1:
-
更改 mongodb.conf,auth=true
重启 Mongod 服务
使用以下方式连接猫鼬:
mongoose.connect('mongodb://appuser:password@xx.xxx.xxx.xxx:27017/applicationdb');
没有收到连接错误,因此尝试通过 Mongoose 执行 GET 会导致操作超时而没有任何错误(至少我能找到)
场景 2:
-
更改 mongodb.conf,auth=false
重启 Mongod 服务
使用以下方式连接猫鼬:
mongoose.connect('mongodb://xx.xxx.xxx.xxx:27017/applicationdb');
没有收到连接错误,所以尝试通过 Mongoose 执行 GET 并成功返回文档
为什么在 MongoDB 中使用身份验证时,我们会收到此超时并且从未完成请求?
任何帮助都会很棒,我们在这方面不知所措!
【问题讨论】:
能否添加猫鼬连接代码,设置的选项。 @virattara,使用的代码在每个场景的第3步下。 【参考方案1】:您需要使用--auth
选项重新启动mongo 服务,请参阅here
如果它不起作用,请执行以下操作:
尝试使用 keepAlive
设置猫鼬中的服务器选项。请参阅here 和here。
【讨论】:
非常感谢,--auth 是这样做的选项以上是关于Mongoose with Authentication 导致超时的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose with Authentication 导致超时
Mongoose 6 $group with Typescript -> Property '_id' 与索引签名不兼容
Promise/async-await with mongoose,返回空数组
mongoose virtuals with typescript error - 包含箭头函数捕获“this”的全局值,该值隐含类型为“any”