注册测试电话号码

本文档介绍如何在 Identity Platform 中注册电话号码以进行开发。这样,您就可以测试涉及发送短信的身份验证方法,例如电话登录和多重身份验证。

使用测试号码(而不是您拥有的真实号码)有以下几个优点:

  • 它与 iOS 和 Android 模拟器无缝集成。
  • 它可以避免发送实际短信的开销。
  • 可以使用同一电话号码运行连续测试,而不会受到短信发送数量的限制。
  • 您可以编写集成测试,而不会被安全检查所屏蔽。
  • 它不会消耗您的配额配额。

您最多可以注册 10 个电话号码用于开发。

注册测试电话号码

要注册测试电话号码,请按以下步骤操作:

  1. 转到 Cloud Console 中的 身份提供商页面。
    转到“身份提供商”页面

  2. 如果您要测试电话身份验证,请在提供商列表中找到它,然后点击修改图标。如果您要测试多重身份验证,请选择多重短信身份验证标签页,然后点击修改

  3. 用于测试的电话号码下,输入要注册的电话号码和验证码。

    电话号码应使用 E.164 格式,并且不能已被分配给现有 Identity Platform 用户。验证码应为 6 位数字。出于安全考虑,请选择难以猜测的数字,并避免 +1 123-456-7890 等明显的模式。

  4. 点击保存

测试电话号码被 Identity Platform 视为真实的电话号码,因此请妥善保存它们,并定期进行轮替。

手动测试

您可以立即在应用中直接使用测试电话号码,也可以使用 iOS 和 Android 模拟器。使用测试电话号码登录时,系统不会发送短信验证码;您需要输入您在创建测试号码时注册的代码。

登录后,系统会使用测试电话号码创建一个 Identity Platform 用户。此用户拥有与真实用户相同的行为和属性,包括有效的 ID 令牌,这意味着它可以访问您的所有应用和服务。

要限制测试用户的访问权限,请考虑创建具有有限权限的测试角色,并使用自定义声明分配该角色。

集成测试

除了手动测试外,Client SDK 还包含一些可帮助您编写集成测试的 API。这些 API 可以停用 reCAPTCHA 和应用验证要求,从而通过自动化更轻松地绕过它们。

以下示例展示了如何测试使用电话号码的用户登录:

JavaScript

// Turn off phone app verification.
firebase.auth().settings.appVerificationDisabledForTesting = true;

var phoneNumber = "+16505554567";
var testVerificationCode = "123456";

// Render a fake reCAPTCHA and resolve without app verification.
var appVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');
// signInWithPhoneNumber will call appVerifier.verify(), which will resolve
// with a fake reCAPTCHA response.
firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier)
  .then(function (confirmationResult) {
    // confirmationResult can resolve using testVerificationCode.
    return confirmationResult.confirm(testVerificationCode)
  }).catch(function (error) {
    // Error; SMS not sent
    // ...
  });

停用应用验证后,可见和不可见的模拟 reCAPTCHA 验证程序的行为有所不同:

  • 可见的 reCAPTCHA:为了模拟用户点击,reCAPTCHA 将在短暂延迟后自动完成。

  • 不可见的 reCAPTCHA:为了模拟应用验证,reCAPTCHA 会在 appVerifier.verify() 被调用时自动完成。

模拟reCAPTCHA 完成或过期时,仍会触发其回调。

后续步骤

  • 将多重身份验证添加到您的 WebiOSAndroid 应用中。