Firebase 电话号码验证

Firebase Phone Number Verification (Firebase PNV) 是一种快速安全的验证用户电话号码的方法。与基于短信的验证不同,Firebase PNV 需要用户接收并输入短信中的验证码,而 Firebase PNV 可与设备硬件和移动运营商配合使用,只需点按一下即可完成验证。此方法可减少用户摩擦,提高可靠性(因为它不使用经常无法送达的短信),并消除使用短信时经常被利用的滥用途径。

主要功能

运营商是可信来源 借助 Firebase PNV,Google 可以直接从订阅者那里获取 SIM 卡的已验证电话号码,从而告知您当前运行应用的设备上使用的电话号码。短信 OTP 只能告知您用户是否可以访问相应电话号码。
单独使用或与身份提供方搭配使用 您可以单独使用 Firebase PNV 作为一种易于集成且可靠的电话号码验证方法,也可以将其与 Firebase Authentication 或您自己的身份验证系统搭配使用,作为一种登录方法。
自动使用可用的运输公司 如需在特定设备上使用 Firebase PNV,该设备需要使用可用运营商提供的兼容 SIM 卡(实体卡或 eSIM 卡)。您可以使用 Firebase PNV SDK 检测兼容性,并在设备不支持 Firebase PNV 时回退到其他方法(例如短信)。
广泛且不断增加的运营商支持 Firebase PNV 将逐步面向全球运营商推出。随着新运营商的加入,您可以自动使用这些运营商,而无需对应用进行任何二进制更改。如需查看参与的运营商列表,请参阅运营商支持

工作原理

当您提出电话号码验证请求时,Firebase PNV

  1. 检查用户设备和移动运营商是否受支持。

  2. 征得用户同意,允许其与您的应用分享电话号码。

  3. 与分配给 SIM 卡的移动运营商配合使用,以获取经过验证的电话号码。

  4. 向您的应用返回包含已验证电话号码的签名令牌。

验证此令牌的签名后,您的应用现在拥有用户的已验证电话号码。您还可以将此令牌用作基于电话号码的登录流程的一部分,例如使用 Firebase Authentication 或您自己的身份验证后端。

实现流程

设置您的 Firebase 项目 在 Google Cloud 控制台中为您的 Firebase 项目启用 Firebase Phone Number Verification API。
安装 SDK 并进行初始化 安装适用于应用平台的 Firebase PNV SDK。
检查设备和运营商的兼容性 (推荐)当用户执行需要验证电话号码的操作时,请先使用 Firebase PNV SDK 检查设备及其移动运营商是否与 Firebase PNV 兼容。如果不是,请启动其他手机号码验证方法,例如短信验证。
请求经过验证的电话号码 使用 Firebase PNV SDK 从移动运营商处请求设备的已验证电话号码。
验证响应令牌 Firebase PNV 服务的响应中,您会获得一个已签名的令牌,您可以将其发送到应用的后端。在后端,验证令牌的签名。如果签名有效,则令牌包含设备的已验证电话号码。

后续步骤

  • Firebase PNV 是一项付费服务,每次验证都会产生费用。请参阅价格页面了解详情。
  • 如需了解如何在 Android 应用中使用 Firebase PNV,请参阅开始使用 Android 指南。