註冊測試電話號碼

本文將說明如何透過 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 仍會在解析或到期時觸發回呼。

後續步驟