MultiFactorUser interface

ユーザーに関係する多要素関連のプロパティと操作を定義するインターフェイス

サイン:

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])