MultiFactorUser interface

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