如何使用不同的 UID 重新创建我的 Firebase 身份验证用户?

问题描述 投票:0回答:1

我有一个使用 firebase-authentication 服务处理身份验证的应用程序。由于业务逻辑最近发生了一些变化,我也需要开始将用户存储在 Mongo 数据库中。因此,我必须将用户迁移到我的 Mongo 数据库,但除此之外,我还需要他们在 Firebase 中拥有与 Mongo 生成的 UID 相对应的 UID。由于我无法更改 firebase UID(如果我错了请纠正我),我的计划是这样的:

  • 获取firebase中的所有注册用户
  • 使用 mongo 中的附加信息创建这些用户
  • 对于在 Mongo 中创建的每个用户,也在 Firebase 中创建它,使用 Mongo ID 作为 UID。
  • 删除旧的 Firebase 用户

然而,我的计划有一个微妙的细节。我知道我无法获取 firebase 密码,因此在删除和创建用户时,我必须为所有用户生成新密码。我该如何解决这种情况以避免这种情况?

mongodb firebase google-cloud-platform firebase-authentication
1个回答
0
投票

您确实无法从 Firebase 获取密码。事实上,如果您遇到允许您检索密码的服务,您应该立即停止使用该服务 - 因为这是一个巨大的安全风险。

可以从 Firebase 获得的是密码哈希值以及用于确定密码哈希值的算法+盐,然后您可以使用它们在其他地方实现相同的算法,并使用相同的凭据获得新的登录流程。

Firebase 不允许您在其内置提供程序中为用户设置 salt+hash。因此,如果您想实现此流程,您必须实现您自己的身份验证提供程序。这非常复杂,因此您可能需要考虑保留从 mongo ID 到 Firebase UID 的映射表。

© www.soinside.com 2019 - 2024. All rights reserved.