MultiFactorUser interface

此介面可定義與 User 相關的多重要素相關屬性和作業。

簽名:

export interface MultiFactorUser 

屬性

屬性 類型 說明
已註冊因素 多重要素資訊[] 傳回使用者已註冊的雙重驗證清單。

方法

方法 說明
enroll(assertion, displayName) 為使用者註冊 MultiFactorAssertion 識別的第二重驗證方式。
getSession() 傳回次要因素註冊作業的工作階段 ID。這會用來識別嘗試註冊第二重驗證的使用者。
unenroll(選項) 取消註冊指定的次要驗證方式。

MultiFactorUser.enrolledFactors

傳回使用者已註冊的雙重驗證清單。

簽名:

readonly enrolledFactors: MultiFactorInfo[];

MultiFactorUser.enroll()

為使用者註冊 MultiFactorAssertion 識別的第二重驗證方式。

之後,使用者權杖會隨之更新,以反映 JWT 酬載中的變更。接受其他顯示名稱參數,用來識別使用者的第二個因素。最近必須重新驗證,這項作業才能成功。註冊成功後,系統會撤銷現有的 Firebase 工作階段 (更新權杖)。使用者註冊新因素時,系統會傳送電子郵件通知。

簽名:

enroll(assertion: MultiFactorAssertion, displayName?: string | null): Promise<void>;

參數

參數 類型 說明
斷言 多因素斷層 註冊的多重要素斷言。
displayName 字串 |空值 第二個因素的顯示名稱。

傳回:

承諾<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()

傳回次要因素註冊作業的工作階段 ID。這會用來識別嘗試註冊第二重驗證的使用者。

簽名:

getSession(): Promise<MultiFactorSession>;

傳回:

Promise<MultiFactorSession>

利用 MultiFactorSession 解析的承諾。

範例

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

取消註冊指定的次要驗證方式。

如要指定要移除的係數,請傳遞 MultiFactorInfo 物件 (從 MultiFactorUser.enrolledFactors 擷取) 或因素 UID 字串。帳戶取消註冊不會撤銷工作階段。使用者可能會收到有關異動的電子郵件通知。最近必須重新驗證,這項作業才能成功。當使用者取消註冊現有因素時,系統會傳送電子郵件通知至使用者的電子郵件地址。

簽名:

unenroll(option: MultiFactorInfo | string): Promise<void>;

參數

參數 類型 說明
選項 MultiFactorInfo |字串 取消註冊的多重要素選項。

傳回:

承諾<void>

  • 在取消註冊作業完成時解析的 Promise

範例

const multiFactorUser = multiFactor(auth.currentUser);
// Present user the option to choose which factor to unenroll.
await multiFactorUser.unenroll(multiFactorUser.enrolledFactors[i])