ユーザーに関係する多要素関連のプロパティと操作を定義するインターフェイス。
サイン:
export interface MultiFactorUser
プロパティ
財産 | タイプ | 説明 |
---|---|---|
登録された要素 | マルチファクター情報[] | ユーザーが登録した第 2 要素のリストを返します。 |
メソッド
方法 | 説明 |
---|---|
登録(アサーション、表示名) | ユーザーのMultiFactorAssertionによって識別される 2 番目の要素を登録します。 |
getSession() | 第 2 要素登録操作のセッション ID を返します。これは、第 2 要素を登録しようとしているユーザーを識別するために使用されます。 |
登録解除(オプション) | 指定された 2 番目の要素の登録を解除します。 |
MultiFactorUser.enrolledFactors
ユーザーが登録した第 2 要素のリストを返します。
サイン:
readonly enrolledFactors: MultiFactorInfo[];
MultiFactorUser.enroll()
ユーザーのMultiFactorAssertionによって識別される 2 番目の要素を登録します。
解決時に、JWT ペイロードの変更を反映するためにユーザー トークンが更新されます。エンド ユーザーに対して 2 番目の要素を識別するために使用される追加の表示名パラメーターを受け入れます。この操作を成功させるには、最近の再認証が必要です。登録が成功すると、既存の Firebase セッション (リフレッシュ トークン) が取り消されます。新しい要素が登録されると、ユーザーの電子メールに電子メール通知が送信されます。
サイン:
enroll(assertion: MultiFactorAssertion, displayName?: string | null): Promise<void>;
パラメーター
パラメータ | タイプ | 説明 |
---|---|---|
アサーション | 多要素アサーション | 登録に使用する多要素アサーション。 |
表示名 | 文字列 |ヌル | 2 番目の要素の表示名。 |
戻り値:
約束<無効>
例
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>;
パラメーター
パラメータ | タイプ | 説明 |
---|---|---|
オプション | マルチファクター情報|弦 | 登録を解除するための多要素オプション。 |
戻り値:
約束<無効>
- 登録解除操作が完了したときに解決される
Promise
。
例
const multiFactorUser = multiFactor(auth.currentUser);
// Present user the option to choose which factor to unenroll.
await multiFactorUser.unenroll(multiFactorUser.enrolledFactors[i])