firebase身份验证和firebase管理员之间有什么区别?
据我所知,firebase管理员具有身份验证功能,并且可以绕过安全性,这与firebase身份验证不同。并且firebase admin是在服务器端实现的,而firebase身份验证主要是在客户端进行的。
我想知道为什么Firebase身份验证应该在客户端,为什么我们应该使用Firebase身份验证而不是Firebase admin进行身份验证功能。
答案 0 :(得分:4)
Firebase身份验证是一种产品,它允许您编写代码以使用户登录到您的应用程序,并限制用户对其他Firebase产品中资源的访问。为各种平台提供了SDK。
Fireabse Admin是一个SDK,可让您在后端上编写代码来处理Firebase和Google Cloud服务(例如实时数据库,Firestore,Cloud Storage和Cloud Messaging)中的数据。如您所说,它仅用于后端,并且绕过为客户端应用程序建立的常规安全措施。
之所以不能在您的应用程序中使用Firebase Admin SDK,是因为您必须随应用程序一起交付私有凭据才能使该SDK运行。在您的应用程序中传送凭据是一个巨大的安全漏洞-请勿这样做。在恶意用户无法对您的代码进行反向工程和使用您的凭据的情况下,将它们安全地保存在您的后端。
答案 1 :(得分:2)
Firebase身份验证
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