อินเทอร์เฟซที่กำหนดพร็อพเพอร์ตี้และการดำเนินการที่เกี่ยวข้องกับหลายปัจจัยซึ่งเกี่ยวข้องกับผู้ใช้
ลายเซ็น:
export interface MultiFactorUser
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ | ประเภท | คำอธิบาย |
---|---|---|
enrolledFactors | ข้อมูลหลายปัจจัย[] | แสดงผลรายการปัจจัยที่สองที่ลงทะเบียนของผู้ใช้ |
เมธอด
วิธีการ | คำอธิบาย |
---|---|
ลงทะเบียน(การยืนยัน, displayName) | ลงทะเบียนปัจจัยที่ 2 ตามที่ระบุโดย MultiFactorAssertion สำหรับผู้ใช้ |
getSession() | แสดงผลตัวระบุเซสชันสำหรับการดำเนินการลงทะเบียนปัจจัยที่สอง ข้อมูลนี้ใช้เพื่อระบุผู้ใช้ที่พยายามลงทะเบียนปัจจัยที่ 2 |
ยกเลิกการลงทะเบียน(ตัวเลือก) | ยกเลิกการลงทะเบียนปัจจัยที่ 2 ที่ระบุ |
MultiFactorUser.enrolledFactors
แสดงผลรายการปัจจัยที่สองที่ลงทะเบียนของผู้ใช้
ลายเซ็น:
readonly enrolledFactors: MultiFactorInfo[];
MultiFactorUser.enroll()
ลงทะเบียนปัจจัยที่ 2 ตามที่ระบุโดย MultiFactorAssertion สำหรับผู้ใช้
เมื่อแก้ปัญหาแล้ว โทเค็นผู้ใช้จะได้รับการอัปเดตเพื่อแสดงการเปลี่ยนแปลงในเพย์โหลด JWT ยอมรับพารามิเตอร์ชื่อที่แสดงเพิ่มเติมซึ่งใช้เพื่อระบุปัจจัยที่ 2 ต่อผู้ใช้ปลายทาง ต้องมีการตรวจสอบสิทธิ์อีกครั้งเมื่อเร็วๆ นี้เพื่อให้การดำเนินการนี้สำเร็จ เมื่อลงทะเบียนสำเร็จ ระบบจะเพิกถอนเซสชัน Firebase ที่มีอยู่ (โทเค็นการรีเฟรช) เมื่อมีการลงทะเบียนปัจจัยใหม่ ระบบจะส่งการแจ้งเตือนทางอีเมลไปยังอีเมลของผู้ใช้
ลายเซ็น:
enroll(assertion: MultiFactorAssertion, displayName?: string | null): Promise<void>;
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
การยืนยัน | MultiFactorAssertion | การยืนยันแบบหลายปัจจัยเพื่อลงทะเบียน |
displayName | สตริง | ค่าว่าง | ชื่อที่แสดงของปัจจัยที่ 2 |
การคืนสินค้า:
คำมั่นสัญญา<โมฆะ>
ตัวอย่าง
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()
แสดงผลตัวระบุเซสชันสำหรับการดำเนินการลงทะเบียนปัจจัยที่สอง ข้อมูลนี้ใช้เพื่อระบุผู้ใช้ที่พยายามลงทะเบียนปัจจัยที่ 2
ลายเซ็น:
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()
ยกเลิกการลงทะเบียนปัจจัยที่ 2 ที่ระบุ
หากต้องการระบุตัวประกอบที่จะนำออก ให้ส่งออบเจ็กต์ MultiFactorInfo (ดึงมาจาก MultiFactorUser.enrolledFactors) หรือสตริง UID ของปัจจัย ระบบจะไม่เพิกถอนเซสชันเมื่อยกเลิกการลงทะเบียนบัญชีแล้ว ระบบจะส่งการแจ้งเตือนทางอีเมลไปยังผู้ใช้เพื่อแจ้งให้ทราบถึงการเปลี่ยนแปลงดังกล่าว ต้องมีการตรวจสอบสิทธิ์อีกครั้งเมื่อเร็วๆ นี้เพื่อให้การดำเนินการนี้สำเร็จ เมื่อมีการยกเลิกการลงทะเบียนปัจจัยที่มีอยู่ ระบบจะส่งการแจ้งเตือนทางอีเมลไปยังอีเมลของผู้ใช้
ลายเซ็น:
unenroll(option: MultiFactorInfo | string): Promise<void>;
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
option | MultiFactorInfo สตริง | ตัวเลือกแบบหลายปัจจัยสำหรับยกเลิกการลงทะเบียน |
การคืนสินค้า:
คำมั่นสัญญา<โมฆะ>
Promise
ซึ่งจะแก้ไขเมื่อการดำเนินการยกเลิกการลงทะเบียนเสร็จสมบูรณ์
ตัวอย่าง
const multiFactorUser = multiFactor(auth.currentUser);
// Present user the option to choose which factor to unenroll.
await multiFactorUser.unenroll(multiFactorUser.enrolledFactors[i])