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:
检查用户设备和移动运营商是否受支持。
征得用户同意,允许其与您的应用分享电话号码。
与分配给 SIM 卡的移动运营商配合使用,以获取经过验证的电话号码。
向您的应用返回包含已验证电话号码的签名令牌。
验证此令牌的签名后,您的应用现在拥有用户的已验证电话号码。您还可以将此令牌用作基于电话号码的登录流程的一部分,例如使用 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 指南。