註冊測試電話號碼

本文說明如何向 Identity Platform 註冊電話號碼,以利開發。這樣一來,您就能測試需要傳送簡訊的驗證方法,例如手機登入和多重驗證。

使用測試號碼 (而非您擁有的實際號碼) 有幾項優點:

  • 這項服務與 iOS 和 Android 模擬器完美整合。
  • 這樣就不必實際傳送簡訊,可節省相關費用。
  • 你可以使用同一個電話號碼連續執行測試,不會受到節流。
  • 您可以編寫整合測試,不必擔心安全檢查會阻礙測試進行。
  • 不會耗用您的使用配額。

您最多可以註冊 10 個開發用電話號碼。

註冊測試電話號碼

如要註冊測試電話號碼,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Identity Providers」(身分識別提供者) 頁面。
    前往「Identity Providers」(識別資訊提供者) 頁面

  2. 如要測試電話驗證,請在供應商清單中找出該項目,然後按一下「編輯」圖示。如要測試多重驗證,請選取「多重簡訊驗證」分頁標籤,然後按一下「編輯」

  3. 在「測試用電話號碼」下方,輸入電話號碼和驗證碼進行註冊。

    電話號碼應採用 E.164 格式,且不得已指派給現有的 Identity Platform 使用者。驗證碼應為六位數。 為確保安全,請選擇難以猜到的號碼,並避免使用 +1 123-456-7890 等明顯模式。

  4. 按一下 [儲存]

Identity Platform 會將測試電話號碼視為真實電話號碼,因此請妥善儲存並定期輪替。

手動測試

您可以立即在應用程式中直接使用測試電話號碼,或透過 iOS 和 Android 模擬器使用。使用測試電話號碼登入時,系統不會傳送簡訊驗證碼,而是要求您輸入建立測試號碼時註冊的驗證碼。

登入後,系統會使用測試電話號碼建立 Identity Platform 使用者。這個使用者與真實使用者具有相同的行為和屬性,包括有效的 ID 權杖,因此可以存取您的所有應用程式和服務。

如要限制測試使用者的存取權,請考慮建立權限受限的測試角色,並使用自訂聲明指派該角色。

整合測試

除了手動測試之外,用戶端 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:如要模擬應用程式驗證,系統會在呼叫 appVerifier.verify() 時自動解析 reCAPTCHA。

模擬 reCAPTCHA 解決或過期時,仍會觸發回呼。

後續步驟