我有一个使用 firebase-authentication 服务处理身份验证的应用程序。由于业务逻辑最近发生了一些变化,我也需要开始将用户存储在 Mongo 数据库中。因此,我必须将用户迁移到我的 Mongo 数据库,但除此之外,我还需要他们在 Firebase 中拥有与 Mongo 生成的 UID 相对应的 UID。由于我无法更改 firebase UID(如果我错了请纠正我),我的计划是这样的:
然而,我的计划有一个微妙的细节。我知道我无法获取 firebase 密码,因此在删除和创建用户时,我必须为所有用户生成新密码。我该如何解决这种情况以避免这种情况?
您确实无法从 Firebase 获取密码。事实上,如果您遇到允许您检索密码的服务,您应该立即停止使用该服务 - 因为这是一个巨大的安全风险。
您可以从 Firebase 获得的是密码哈希值以及用于确定密码哈希值的算法+盐,然后您可以使用它们在其他地方实现相同的算法,并使用相同的凭据获得新的登录流程。
Firebase 不允许您在其内置提供程序中为用户设置 salt+hash。因此,如果您想实现此流程,您必须实现您自己的身份验证提供程序。这非常复杂,因此您可能需要考虑保留从 mongo ID 到 Firebase UID 的映射表。