อินเทอร์เฟซที่กำหนดคุณสมบัติและการดำเนินการที่เกี่ยวข้องกับหลายปัจจัยที่เกี่ยวข้องกับ ผู้ใช้ .
ลายเซ็น:
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])