User に関連する多要素関連のプロパティとオペレーションを定義するインターフェース。
署名:
export interface MultiFactorUser
プロパティ
プロパティ | 型 | 説明 |
---|---|---|
enrolledFactors | MultiFactorInfo[] | ユーザーが登録されている第 2 要素のリストを返します。 |
メソッド
メソッド | 説明 |
---|---|
enroll(assertion, displayName) | ユーザーの MultiFactorAssertion によって識別される第 2 要素を登録します。 |
getSession() | 第 2 要素の登録オペレーションのセッション ID を返します。これは、第 2 要素を登録しようとしているユーザーを識別するために使用されます。 |
unenroll(option) | 指定した第 2 要素の登録を解除します。 |
MultiFactorUser.enrolledFactors
ユーザーが登録されている第 2 要素のリストを返します。
署名:
readonly enrolledFactors: MultiFactorInfo[];
MultiFactorUser.enroll()
ユーザーの MultiFactorAssertion によって識別される第 2 要素を登録します。
解決すると、ユーザー トークンが更新され、JWT ペイロードの変更が反映されます。エンドユーザーが第 2 要素を識別するための追加の表示名パラメータを受け入れます。この操作を成功させるには、最近の再認証が必要です。登録が成功すると、既存の Firebase セッション(更新トークン)が取り消されます。新しい要素が登録されると、ユーザーのメールアドレスにメール通知が送信されます。
署名:
enroll(assertion: MultiFactorAssertion, displayName?: string | null): Promise<void>;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
アサーション | MultiFactorAssertion | 登録に使用する多要素アサーション。 |
displayName | 文字列 |null | 第 2 要素の表示名。 |
戻り値:
約束 <void>
例
const multiFactorUser = multiFactor(auth.currentUser);
const multiFactorSession = await multiFactorUser.getSession();
// Send verification code.
const phoneAuthProvider = new PhoneAuthProvider(auth);
const phoneInfoOptions = {
phoneNumber: phoneNumber,
session: multiFactorSession
};
const verificationId = await phoneAuthProvider.verifyPhoneNumber(phoneInfoOptions, appVerifier);
// Obtain verification code from user.
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
await multiFactorUser.enroll(multiFactorAssertion);
// Second factor enrolled.
MultiFactorUser.getSession()
第 2 要素の登録オペレーションのセッション ID を返します。これは、第 2 要素を登録しようとしているユーザーを識別するために使用されます。
署名:
getSession(): Promise<MultiFactorSession>;
戻り値:
Promise<MultiFactorSession>
MultiFactorSession で解決される Promise。
例
const multiFactorUser = multiFactor(auth.currentUser);
const multiFactorSession = await multiFactorUser.getSession();
// Send verification code.
const phoneAuthProvider = new PhoneAuthProvider(auth);
const phoneInfoOptions = {
phoneNumber: phoneNumber,
session: multiFactorSession
};
const verificationId = await phoneAuthProvider.verifyPhoneNumber(phoneInfoOptions, appVerifier);
// Obtain verification code from user.
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
await multiFactorUser.enroll(multiFactorAssertion);
MultiFactorUser.unenroll()
指定した第 2 要素の登録を解除します。
削除する要素を指定するには、MultiFactorInfo オブジェクト(MultiFactorUser.enrolledFactors から取得)または要素の UID 文字列を渡します。アカウントの登録を解除しても、セッションは取り消されません。多くの場合、変更を知らせるメール通知がユーザーに送信されます。この操作を成功させるには、最近の再認証が必要です。既存の要素の登録が解除されると、ユーザーのメールアドレスにメール通知が送信されます。
署名:
unenroll(option: MultiFactorInfo | string): Promise<void>;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
option | MultiFactorInfo |文字列 | 登録を解除する多要素オプション。 |
戻り値:
約束 <void>
Promise
。登録解除オペレーションが完了すると解決されます。
例
const multiFactorUser = multiFactor(auth.currentUser);
// Present user the option to choose which factor to unenroll.
await multiFactorUser.unenroll(multiFactorUser.enrolledFactors[i])