【问题标题】:how to use firebase only for authentication?如何仅使用 firebase 进行身份验证?
【发布时间】:2021-06-10 14:51:24
【问题描述】:

我有一个用于前端的反应应用程序和一个用于后端的节点和一个用于数据库的 mongodb。我想让用户通过他们的手机号码注册和登录。在 firebase 中,有一种身份验证方法可以让用户通过 OTP 登录。我想要实现的是,每当用户通过firebase用他们的手机号码创建一个帐户时,它应该保存在我的mongodb数据库中,当他们尝试登录时,应该从mongodb数据库中检查号码并且用户必须登录。如何我能做到吗?

总结: 前端 - 反应 中间件 - Firebase(仅适用于 OTP) 后端 - Nodejs 数据库 - MongoDB

提前致谢

【问题讨论】:

    标签: node.js reactjs mongodb firebase-authentication


    【解决方案1】:

    这听起来可行。 Firebase 身份验证完成后,您将获得来自 firebase 的用户信息,然后您需要自己实现 mongo 部分。

    以下是通过 Firebase SDK 实施基于电话的身份验证的文档:https://firebase.google.com/docs/auth/web/phone-auth(这些文档还链接到 https://opensource.google/projects/firebaseui,它看起来像是一个现成的 firebase 用户界面小部件库)。虽然它们涵盖了许多问题(例如 CAPTCHA),但基本上:

    1. 您向用户询问他们的电话号码,向 Firebase SDK 拨打一个电话以发送短信
    2. 您向用户询问发送的代码
    3. 当他们输入时,您再次调用 Firebase SDK 以验证代码
    4. 当该操作成功时,意味着 Firebase 已验证其身份,您将能够通过代表已登录用户的 Firebase SDK 访问 user 对象。

    此时,您可以将所需的用户信息存储到您自己的数据库中——如何做到这一点完全取决于您。我建议使用来自 firebase auth 的用户 ID 作为您自己数据库中的用户 ID/唯一键。

    例如,一种方法是将 Firebase 身份验证用户 ID 以及您存储的任何其他用户信息发送到您自己的节点应用程序,例如在/user/create 端点,并让您的节点应用程序将其存储在 mongo 中。登录时,您将再次使用 Firebase 来验证用户的身份,一旦您拥有用户 ID,您将需要在您的节点应用程序中使用类似 /user/<userid> 的端点,以通过 ID 查找现有用户。您的应用将使用 mongo 作为所有用户数据的真实来源,而您将仅使用 firebase 进行身份验证和获取他们的 id。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-14
      • 2021-03-01
      • 1970-01-01
      • 2020-10-09
      • 2017-03-11
      • 2018-10-19
      • 2021-05-26
      • 2017-09-12
      相关资源
      最近更新 更多