rmongodb 身份验证总是失败[重复]

Posted

技术标签:

【中文标题】rmongodb 身份验证总是失败[重复]【英文标题】:rmongodb authentication always fails [duplicate] 【发布时间】:2015-07-27 22:59:29 【问题描述】:

我正在尝试使用 rmongodb 登录,但它没有进行身份验证。这是我的连接字符串:

myMongoConnection <- mongo.create(host = "<myip>",db = "geoLoc", username = "<myusername>", password = "<mypassword>")

但是,如果我在计算机上打开一个 mongo shell 并输入:

mongo &lt;myip&gt;/geoLoc -u '&lt;myusername&gt;' -p '&lt;mypassword&gt;'

它连接得很好。

此外,如果我登录服务器并通过注释禁用身份验证: auth = true,然后试试:

myMongoConnection &lt;- mongo.create(host = "&lt;myip&gt;",db = "geoLoc)"

它也可以正常工作。所以这与用户名和密码有关。我不知道什么虽然我知道他们是“正确的”,因为我可以用他们登录!

【问题讨论】:

【参考方案1】:

您可能正在运行 MongoDB 3.0 或更高版本的服务器版本(当前写作 3.x 系列),它具有与旧驱动程序版本不兼容的updated security authentication mechanism(来自 MONGODB-CR 的 SCRAM-SHA-1)不支持。

截至当前rmongodb 软件包发布(编写版本1.8.0),此驱动程序基于与新身份验证方法不兼容的遗留C 驱动程序实现。正如issues on that repository 中所指出的,作者注意到了这种驱动程序依赖关系,并指出该程序包需要重写才能利用支持新身份验证方法的新 API。

在撰写本文时,除了建立一个目前尚未准备好发布的 new branch 之外,似乎没有任何举措来进行任何此类更改。

因此,您目前的选择是:

在可能的情况下无需身份验证即可工作 将 MongoDB 服务器版本降级为支持旧身份验证的版本 寻找支持新身份验证的其他驱动程序实现。

所以“rmongodb”本身目前无法连接到 MongoDB 3.x 服务器。应用其他选项之一,和/或自己为存储库做出贡献,前提是您能够通过完整的身份验证支持加快其开发到下一个版本的速度。

在此答案中链接的问题中链接或讨论了其他可能的驱动程序替代方案。

【讨论】:

其他选项是在服务器端将身份验证更改为 mongodb-cr。

以上是关于rmongodb 身份验证总是失败[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 中间件身份验证总是失败并重定向到登录

用于基本身份验证的 Apache Shiro 凭据匹配总是失败

outlook为啥总是验证身份失败?

xmpp 对 facebook 聊天 api 的身份验证并总是收到失败

在 HTTPS 上使用 Windows 身份验证首次调用 ASP.NET Core 2.0 Web API 在 Chrome 中总是失败

使用 Objective-C 和 C++ 实现 X-FACEBOOK-PLATFORM 身份验证的身份验证失败