用于定义与 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>;
返回:
使用 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])