首页 > 解决方案 > 如何使用 Node.js 在 Firebase 中使用电子邮件身份验证

问题描述

我正在尝试通过电子邮件和密码为我的应用程序使用 Firebase 身份验证服务。我注意到有两个 SDK,Client 和 Admin,它们都有创建新用户的方法。我还注意到,只有客户端 SDK 具有验证用户电子邮件并在创建后返回新用户令牌的方法。

这两个 SDK 让我对如何使用这项服务感到困惑,所以我有几个问题:

  1. 我应该在我的服务器中创建一个“注册”路由并使用 Admin SDK 还是应该使用客户端 SDK?
  2. 如果我使用客户端 SDK 进行签名,它应该在服务器端还是在客户端?
  3. 如何使用 Firebase“电子邮件地址验证”模板验证用户电子邮件?

如果有人可以给我一些指导。

标签: node.jsfirebasefirebase-authentication

解决方案


Firebase Admin SDK 旨在在受信任的环境中运行,例如您的开发机器、您控制的服务器或 Cloud Functions。它们基于您在初始化它们时指定的服务帐户,以提升的管理权限运行。因此,即使他们确实(如您所述)能够创建用户帐户,也无法使用 Admin SDK 登录用户。

客户端 Node.js SDK 旨在用于不受信任的环境,例如 IoT 设置。此 SDK 确实允许您以特定用户身份登录,然后当您从 Node 应用程序中调用其他 Firebase API 时,会传递此信息。

您应该使用哪两个取决于用例,不幸的是您没有描述。否则,以上是我们可以提供的最佳指导:如果您的代码在受信任的环境中运行,请使用 Admin SDK;否则使用客户端 SDK。


推荐阅读