Firebase身份验证与Firebase管理员

Lil*_*ian 4 firebase firebase-authentication firebase-admin

firebase身份验证和firebase管理员有什么区别?

据我所知,firebase管理员具有身份验证功能,并且可以绕过安全性,这与firebase身份验证不同。Firebase管理员是在服务器端实现的,而Firebase身份验证主要是在客户端。

我想知道为什么Firebase身份验证应该在客户端,为什么我们应该使用Firebase身份验证而不是Firebase admin进行身份验证功能。

Dou*_*son 6

Firebase身份验证是一种产品,可让您编写代码以使用户登录到您的应用程序,并限制用户对其他Firebase产品中资源的访问。为各种平台提供了SDK。

Fireabse Admin是一个SDK,可让您在后端上编写代码来处理Firebase和Google Cloud服务(例如实时数据库,Firestore,Cloud Storage和Cloud Messaging)中的数据。如您所说,它仅用于后端,并且绕过为客户端应用程序建立的常规安全措施。

之所以不能在您的应用程序中使用Firebase Admin SDK,是因为您必须随应用程序一起提供私有凭据才能使该SDK运行。在您的应用程序中传送凭据是一个巨大的安全漏洞-请勿这样做。使它们在后端安全,以防止恶意用户无法对您的代码进行反向工程并使用您的凭据。


Chr*_*eer 5

Firebase 身份验证

Firebase 身份验证在客户端应用程序中用于识别特定用户。它用于限制 firebase 上的资源。因此,它严格适用于最终用户区域。



Firebase 管理员

另一方面,Firebase 管理员是纯粹的后端。您可以使用它来定义 Firebase 的自定义逻辑,并且可以修改 Firebase 服务以满足您的需求。以下是一些用例场景。

1. 用户管理

必须访问 Firebase 控制台来管理您的 Firebase 用户并不总是很方便。管理员用户管理 API 提供对这些相同用户的编程访问。它甚至允许您执行 Firebase 控制台无法执行的操作,例如检索用户的完整数据以及更改用户的密码、电子邮件地址或电话号码。

2. 自定义认证

您可以将外部用户系统与 Firebase 集成。例如,您可能已经有一个预先存在的用户数据库,或者您可能想要与 Firebase 身份验证本身不支持的第三方身份提供程序集成。

3. 身份验证

Firebase 身份验证主要用于识别您应用的用户,以限制对其他 Firebase 服务(例如 Firebase 实时数据库和 Cloud Storage)的访问。但是您也可以使用该服务在您自己的服务器上识别这些用户。这让您可以代表已使用 Firebase 身份验证登录的用户安全地执行服务器端逻辑。

4. 自定义用户声明

在某些情况下,您可能希望对已通过受支持的 Firebase 身份验证提供商之一(例如电子邮件/密码、Google、Facebook、电话等)登录的用户实施细粒度的访问控制。自定义用户声明和应用程序安全性的组合规则提供了这种能力。例如,使用 Firebase 身份验证的电子邮件/密码提供商登录的用户可以使用自定义声明定义访问控制。

有关更多信息,请参阅firebase 文档