Mongo转储并还原到其他群集,我无法登录

时间:2018-11-08 15:15:05

标签: mongodb express bcrypt mongodb-atlas

我将mongoDB从一个图集集群移到了另一个帐户/不同集群。

为此,我从源数据库进行了转储并还原到新帐户的群集。

我没有任何问题可以恢复数据库-很好-我可以从视觉上确认新数据库中的哈希值与旧数据库中的哈希值相同。

当我尝试登录我的应用程序(指向源代码)时,我会很好,当我更改数据库设置并指向新数据库时,登录失败。

api代码是相同的-在本地运行,唯一不同的是连接字符串。

我正在使用bcrypt来对密码进行哈希处理-但是由于api位于我的本地计算机上,因此这种方法会将所有应用程序层变量从问题列表中删除。

除了连接字符串外,我使用3.1驱动程序连接字符串连接到“旧”版本,因此我决定尝试使用3.6驱动程序版本连接到“新”版本。

有人可以确认使用转储和还原方法将数据库从一个群集移动到另一个群集不会影响哈希密码的匹配。?

也许可以提供有关在哪里寻找答案的建议?

所以代码上的唯一区别是:

// Old
DB_URI=mongodb://u***:p***@dev0-shard-00-00-1xxx.mongodb.net:27017,dev0-shard-00-01-1xxx.mongodb.net:27017,dev0-shard-00-02-1xxx.mongodb.net:27017/db?ssl=true&replicaSet=Dev0-shard-0&authSource=admin


// new
DB_URI=mongodb+srv://n***:h***@prod-xxx.mongodb.net/test?retryWrites=true

1 个答案:

答案 0 :(得分:0)

好吧,所以我终于开始玩弄东西了,由于URI是唯一的更改,所以我改回了3.4驱动程序语法(那个长的不敬虔的字符串),并且可以正常工作。

为记录起见,我所有的“开放”(未经身份验证)API调用,例如注册或要求忘记密码的调用。和大量的下拉查询,所有这些都通过3.6驱动程序通过api处理,我也注册并正常登录-唯一的问题是使用在先前群集中创建的帐户登录,并使用了新的驱动程序连接字符串

作为确认-现在我将连接字符串切换回3.4-我无法登录使用3.6连接字符串创建的帐户。