MultiFactorUser interface

อินเทอร์เฟซที่กำหนดคุณสมบัติและการดำเนินการที่เกี่ยวข้องกับหลายปัจจัยที่เกี่ยวข้องกับ ผู้ใช้ .

ลายเซ็น:

export interface MultiFactorUser 

คุณสมบัติ

คุณสมบัติ พิมพ์ คำอธิบาย
ปัจจัยที่ลงทะเบียนเรียน ข้อมูลหลายปัจจัย [] ส่งคืนรายการปัจจัยที่สองที่ลงทะเบียนของผู้ใช้

วิธีการ

วิธี คำอธิบาย
ลงทะเบียน (การยืนยันชื่อที่แสดง) ลงทะเบียนปัจจัยที่สองตามที่ระบุโดย MultiFactorAssertion สำหรับผู้ใช้
รับเซสชั่น() ส่งคืนตัวระบุเซสชันสำหรับการดำเนินการลงทะเบียนปัจจัยที่สอง ใช้เพื่อระบุผู้ใช้ที่พยายามลงทะเบียนปัจจัยที่สอง
ยกเลิกการลงทะเบียน (ตัวเลือก) ยกเลิกการลงทะเบียนปัจจัยที่สองที่ระบุ

MultiFactorUser.enrolledFactors

ส่งคืนรายการปัจจัยที่สองที่ลงทะเบียนของผู้ใช้

ลายเซ็น:

readonly enrolledFactors: MultiFactorInfo[];

MultiFactorUser.enroll()

ลงทะเบียนปัจจัยที่สองตามที่ระบุโดย MultiFactorAssertion สำหรับผู้ใช้

ในการแก้ปัญหา โทเค็นผู้ใช้จะได้รับการอัปเดตเพื่อแสดงการเปลี่ยนแปลงในส่วนข้อมูล JWT ยอมรับพารามิเตอร์ชื่อที่แสดงเพิ่มเติมที่ใช้ในการระบุปัจจัยที่สองสำหรับผู้ใช้ปลายทาง จำเป็นต้องมีการรับรองความถูกต้องใหม่ล่าสุดเพื่อให้การดำเนินการนี้สำเร็จ เมื่อการลงทะเบียนสำเร็จ เซสชัน Firebase ที่มีอยู่ (โทเค็นการรีเฟรช) จะถูกเพิกถอน เมื่อมีการลงทะเบียนปัจจัยใหม่ การแจ้งเตือนทางอีเมลจะถูกส่งไปยังอีเมลของผู้ใช้

ลายเซ็น:

enroll(assertion: MultiFactorAssertion, displayName?: string | null): Promise<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 >

คำสัญญาที่ได้รับการแก้ไขด้วย 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>;

พารามิเตอร์

พารามิเตอร์ พิมพ์ คำอธิบาย
ตัวเลือก ข้อมูลหลายปัจจัย | เชือก ตัวเลือกแบบหลายปัจจัยเพื่อยกเลิกการลงทะเบียน

ผลตอบแทน:

สัญญา<โมฆะ>

  • Promise ที่จะแก้ไขเมื่อการดำเนินการยกเลิกการลงทะเบียนเสร็จสมบูรณ์

ตัวอย่าง

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