註冊測試電話號碼
本文將說明如何透過 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 仍會在解析或到期時觸發回呼。