【问题标题】:Firebase Authentication vs Firebase AdminFirebase 身份验证与 Firebase 管理员
【发布时间】:2018-12-05 07:58:28
【问题描述】:

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

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

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

【问题讨论】:

    标签: firebase firebase-authentication firebase-admin


    【解决方案1】:

    Firebase 身份验证

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



    Firebase 管理员

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

    1.用户管理

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

    2。自定义身份验证

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

    3.身份验证

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

    4.自定义用户声明

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

    欲了解更多信息,请访问firebase doc

    【讨论】:

      【解决方案2】:

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

      Fireabse Admin 是一个 SDK,可让您在后端编写代码来操作 Firebase 和 Google Cloud 服务(例如实时数据库、Firestore、云存储和云消息传递)中的数据。正如您所说,它仅用于后端,并绕过为客户端应用程序建立的正常安全措施。

      您不能在您的应用中使用 Firebase Admin SDK 的原因是您必须在您的应用中提供私有凭据才能使 SDK 运行。在您的应用程序中发送您的凭据是一个巨大的安全漏洞 - 不要这样做。确保它们在您的后端安全,恶意用户无法对您的代码进行逆向工程并使用您的凭据。

      【讨论】:

        猜你喜欢
        • 2013-07-10
        • 2021-09-19
        • 1970-01-01
        • 1970-01-01
        • 2021-11-09
        • 1970-01-01
        • 1970-01-01
        • 2017-10-08
        • 1970-01-01
        相关资源
        最近更新 更多