註冊測試電話號碼
本文說明如何向 Identity Platform 註冊電話號碼,以利開發。這樣一來,您就能測試需要傳送簡訊的驗證方法,例如手機登入和多重驗證。
使用測試號碼 (而非您擁有的實際號碼) 有幾項優點:
- 這項服務與 iOS 和 Android 模擬器完美整合。
- 這樣就不必實際傳送簡訊,可節省相關費用。
- 你可以使用同一個電話號碼連續執行測試,不會受到節流。
- 您可以編寫整合測試,不必擔心安全檢查會阻礙測試進行。
- 不會耗用您的使用配額。
您最多可以註冊 10 個開發用電話號碼。
註冊測試電話號碼
如要註冊測試電話號碼,請按照下列步驟操作:
前往 Google Cloud 控制台的「Identity Providers」(身分識別提供者) 頁面。
前往「Identity Providers」(識別資訊提供者) 頁面如要測試電話驗證,請在供應商清單中找出該項目,然後按一下「編輯」圖示。如要測試多重驗證,請選取「多重簡訊驗證」分頁標籤,然後按一下「編輯」。
在「測試用電話號碼」下方,輸入電話號碼和驗證碼進行註冊。
電話號碼應採用 E.164 格式,且不得已指派給現有的 Identity Platform 使用者。驗證碼應為六位數。 為確保安全,請選擇難以猜到的號碼,並避免使用
+1 123-456-7890等明顯模式。按一下 [儲存]。
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 解決或過期時,仍會觸發回呼。