MultiFactorUser interface

用于定义与 User 相关的多重身份验证属性和操作的接口。

签名

export interface MultiFactorUser 

属性

属性 类型 说明
enrolledFactors MultiFactorInfo[] 返回用户已注册的第二重身份验证的列表。

方法

方法 说明
enroll(assertion, displayName) 为用户注册由 MultiFactorAssertion 标识的第二重身份验证。
getSession() 返回第二重身份验证注册操作的会话标识符。用于标识尝试注册第二重身份验证的用户。
unenroll(选项) 取消注册指定的第二重身份验证。

MultiFactorUser.enrolledFactors

返回用户已注册的第二重身份验证的列表。

签名

readonly enrolledFactors: MultiFactorInfo[];

MultiFactorUser.enroll()

为用户注册由 MultiFactorAssertion 标识的第二重身份验证。

解决这一问题后,系统会更新用户令牌以反映 JWT 有效负载的变化。接受用于向最终用户标识第二重身份验证的附加显示名称参数。必须近期重新进行身份验证,此操作才能成功。注册成功后,现有 Firebase 会话(刷新令牌)会被撤消。注册新因素后,系统会向用户的电子邮件地址发送电子邮件通知。

签名

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

参数

参数 类型 说明
断言 MultiFactorAssertion 注册时使用的多因素断言。
displayName 字符串 |null 第二重身份验证的显示名称。

返回

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

返回第二重身份验证注册操作的会话标识符。用于标识尝试注册第二重身份验证的用户。

签名

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

取消注册指定的第二重身份验证。

如需指定要移除的系数,请传递 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])