Firebase Authentication
Firebase Authentication 提供了后端服务、易用的 SDK 以及现成的界面库,以便向您的应用验证用户的身份。该功能支持通过密码、电话号码、主流联合身份提供方服务(如 Google、Facebook 和 Twitter 等)进行身份验证。
Firebase Authentication 与其他 Firebase 服务紧密集成,且遵循 OAuth 2.0 和 OpenID Connect 等行业标准,可与您的自定义后端轻松集成。
升级到 Firebase Authentication with Identity Platform 后,您就可以解锁额外的功能,例如多重身份验证、屏蔽函数、用户活动和审核日志记录、SAML 和通用 OpenID Connect 支持服务、多租户、企业级支持服务。
主要功能
您可以使用 FirebaseUI 作为一个完整的普适性身份验证解决方案,或使用 Firebase Authentication SDK 手动将一种或多种登录方法集成到您的应用中,让用户登录您的 Firebase 应用。
FirebaseUI 身份验证 | |
---|---|
普适性身份验证解决方案 |
推荐用于为您的应用添加完整登录系统的情况。 FirebaseUI 提供普适性身份验证解决方案,可处理用户使用电子邮件地址与密码、电话号码以及主流联合身份提供方服务(包括 Google 登录和 Facebook 登录)登录的界面流程。 FirebaseUI Auth 组件遵循在移动设备和网站上进行身份验证的最佳实践,能够尽量提高您的应用的登录与注册转化率。该组件也可处理帐号恢复和帐号关联等边缘场景,这些场景可能具有较高的安全要求且易于出错。 FirebaseUI 可以轻松进行自定义,以适应应用其余部分的外观风格;它还采用开源模式,让您可以不受限制地实现所期望的用户体验。 |
Firebase SDK 身份验证 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
基于电子邮件和密码的身份验证 | 使用用户的电子邮件地址和密码对他们进行身份验证。Firebase Authentication SDK 提供了为使用电子邮件地址和密码登录的用户创建帐号和对其进行管理的方法。Firebase Authentication 也处理密码重置电子邮件的发送。 |
||||||||||
联合身份提供方服务集成 | 通过集成联合身份提供方服务来对用户进行身份验证。Firebase Authentication SDK 提供了允许用户使用其 Google、Facebook、Twitter 和 GitHub 帐号登录的方法。
|
||||||||||
手机号码身份验证 | 通过向用户的电话发送短信来进行身份验证。 |
||||||||||
自定义身份验证系统集成 |
将应用的现有登录系统关联到 Firebase Authentication SDK,获得使用 Firebase Realtime Database 和其他 Firebase 服务的权限。 |
||||||||||
匿名身份验证 | 创建临时匿名帐号,用户不需要登录,便可使用需要通过身份验证才能使用的 Firebase 功能。如果用户以后选择注册帐号,您可将匿名帐号升级为常规帐号,使用户能够从离开的位置继续。 |
带有 Identity Platform 的 Firebase Authentication
带有 Identity Platform 的 Firebase Authentication 是一项可选的升级,可为 Firebase Authentication 增添多项新功能。
此升级不需要执行任何迁移操作,您的现有客户端 SDK 和 Admin SDK 代码将继续照常运行;升级后,您可以立即获得增强型日志记录以及企业级支持服务和服务等级协议 (SLA) 等功能。借助一些额外的代码,您将能够添加多重身份验证、屏蔽函数以及对 SAML 和 OpenID Connect 提供方的支持。
Firebase Authentication with Identity Platform 价格方案与基础产品不同。升级后,免费 (Spark) 方案项目的日活跃用户数上限将为 3,000;对于随用随付 (Blaze) 方案项目中超过免费层级(50,000 名月活跃用户)的用量,系统将收取费用。在升级之前,请确保您了解结算的影响。
请详细了解下面提到的新功能、价格和限制。
功能
多重身份验证 |
通过短信进行多重身份验证可为您的应用添加第二层安全保障,以此保护用户数据。 |
屏蔽函数 |
利用屏蔽函数,您可以运行自定义代码,用于修改用户注册或登录应用的结果。 |
SAML 和 OpenID Connect 提供方 |
支持使用 SAML(仅限 Web)和 Firebase 不提供原生支持的 OpenID Connect 提供方进行登录。 了解如何将 SAML 登录添加到 Web 应用中,以及如何将 OpenID Connect 登录添加到 Apple、Android 和 Web 应用中。 |
用户活动和审核日志记录 |
监控并记录管理员访问和最终用户活动。 升级项目后,系统会自动在 Cloud Logging 中启用管理员活动审核日志。您还可以在 Firebase 控制台的 Authentication 设置页面上启用用户活动日志记录。 如需了解如何查看和分析日志,请参阅 Cloud Logging 文档。 |
使用 App Check 防范滥用行为 |
App Check 可以防止未经授权的客户端访问您的身份验证端点,从而帮助您保护项目免遭滥用。 如需了解如何启用 App Check,请参阅 App Check 文档。 |
多租户 |
利用租户,您可以在单个项目中创建多个不同且独立的用户和配置组。 请参阅 Cloud Identity Platform 文档中的多租户使用入门。 |
企业支持服务和服务等级协议 (SLA) |
升级后的项目可以根据 Identity Platform 服务等级协议 (SLA) 获得 Auth 服务的正常运行时间保证,还可以享受企业级支持服务。 |
自动清理匿名用户 |
您可以选择自动删除超过 30 天的匿名帐号。匿名帐号也将不再计入结算和用量配额。 |
用量限额
升级后,Firebase Authentication with Identity Platform 会针对 Firebase Authentication 的用量施加新的限额。
免费 (Spark)
对于大多数登录提供方而言,免费 (Spark) 方案项目的日活跃用户数 (DAU) 新上限将为 3,000。日活跃使用量是根据 24 小时周期内唯一身份用户登录的数量进行计算的。
提供方 | 新限额 | 旧限额 |
---|---|---|
电子邮件、社交媒体、匿名、自定义 | 3,000 名日活用户 | 无限额 |
SAML、OpenID Connect | 2 名日活用户 | 不适用 |
随用随付 (Blaze)
Blaze 方案项目价格基于月活跃用户数 (MAU),并且包含免费层级(前 50,000 名用户免费)。活跃用户是在结算周期内使用其帐号的任何用户。
提供方 | 免费层级 | 超过免费层级的每名月活用户费用 ($) |
---|---|---|
电子邮件、社交媒体、匿名、自定义 | 0-49,999 名月活用户 | 0.0025-0.0055 / 月活用户 |
SAML、OpenID Connect | 0-49 名月活用户 | 0.015 / 月活用户 |
升级项目
如需将项目升级到 Firebase Authentication with Identity Platform,请打开 Firebase 控制台的 Authentication 设置页面。
工作原理
如需让用户登录到您的应用,您首先要取得用户的身份验证凭据。这些凭据可以是用户的电子邮件地址与密码,也可以是联合身份提供方服务生成的 OAuth 令牌。然后,您要将这些凭据传递给 Firebase Authentication SDK。我们的后端服务随后会验证这些凭据并将响应返回给客户端。
用户成功登录后,您可以访问用户的基本个人资料信息,还能控制用户对其他 Firebase 产品中存储的数据的访问权限。您还可以使用提供的身份验证令牌在自己的后端服务中验证用户的身份。
实现路径
使用 FirebaseUI 身份验证 | ||
---|---|---|
设置登录方法 | 如果要设置电子邮件地址与密码或电话号码登录,以及您想支持的任何联合身份提供方服务登录,请在 Firebase 控制台中启用相应选项,并完成身份提供方要求的所有配置,如设置您的 OAuth 重定向网址。 | |
自定义登录界面 | 您可以通过设置 FirebaseUI 选项来自定义登录界面,也可以复制 (fork) GitHub 上的代码以进一步自定义登录体验。 | |
使用 FirebaseUI 执行登录流程 | 导入 FirebaseUI 库,指定您想支持的登录方法,然后启动 FirebaseUI 登录流程。 |
使用 Firebase Authentication SDK | ||
---|---|---|
设置登录方法 | 如果要设置电子邮件地址与密码或电话号码登录,以及您想支持的任何联合身份提供方服务登录,请在 Firebase 控制台中启用相应选项,并完成身份提供方要求的所有配置,如设置您的 OAuth 重定向网址。 | |
为登录方法实现界面流程 | 对于电子邮件地址与密码登录,请实现一个提示用户输入电子邮件地址和密码的流程。对于电话号码登录,请创建一个提示用户先输入电话号码,然后输入在短信中收到的代码的流程。对于联合登录,请实现每个提供方所要求的流程。 | |
将用户的凭据传递给 Firebase Authentication SDK | 将用户的电子邮件地址与密码或者从联合身份提供方处获得的 OAuth 令牌传递给 Firebase Authentication SDK。 |
后续步骤
详细了解 Firebase 项目中的用户,然后查看与您想支持的登录提供方服务相关的集成指南:
不知道从何处入手?