テスト用電話番号の登録
このドキュメントでは、開発用に電話番号を Identity Platform に登録する方法について説明します。これにより、電話ログインや多要素認証などの SMS メッセージの送信が必要な認証方法をテストできます。
テスト用の電話番号(自身が実際に所有する番号ではなく)を使用すると、次のようなメリットがあります。
- iOS や Android のエミュレータとは、シームレスに統合されます。
- 実際の SMS を送信する際のオーバーヘッドが不要になります。
- 同じ電話番号で連続してテストを実施しても、スロットルが発生しません。
- セキュリティ チェックでブロックされることなく、統合テストを作成できます。
- 使用量の割り当ては消費されません。
開発用に最大 10 個の電話番号を登録できます。
テスト用電話番号の登録
テスト用電話番号を登録するには:
Google Cloud コンソールで [ID プロバイダ] ページに移動します。
[ID プロバイダ] ページに移動電話認証をテストする場合は、プロバイダのリストで電話認証を見つけ、[編集] アイコンをクリックします。多要素認証をテストする場合は、[多要素 SMS] タブを選択し、[編集] をクリックします。
[テスト用電話番号] で、登録する電話番号と確認コードを入力します。
電話番号は E.164 形式を使用してください。既存の Identity Platform ユーザーにすでに割り当てられている番号は使用できません。確認コードは 6 桁の数字でなければなりません。セキュリティ上の理由から、推測しにくい数値を選び、
+1 123-456-7890
のようなわかりやすいパターンは避けてください。[保存] をクリックします。
テスト用の電話番号は、Identity Platform で実際の電話番号と同様に扱われるため、電話番号を安全に保存して定期的にローテーションしてください。
手動テスト
アプリでテスト用の電話番号をすぐに使い始めることができます。直接使用することも、iOS エミュレータや Android エミュレータを使用することもできます。テスト用の電話番号でログインする場合、SMS 確認コードは送信されません。代わりに、テスト番号の作成時に登録したコードを入力します。
ログイン後には、テスト用の電話番号を使用した 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 は、解決または期限切れになるとコールバックをトリガーします。