คลาสที่ใช้เพื่ออำนวยความสะดวกในการกู้คืนจาก MultiFactorError เมื่อผู้ใช้ต้องระบุปัจจัยที่ 2 เพื่อลงชื่อเข้าใช้
ลายเซ็น:
export interface MultiFactorResolver
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ | ประเภท | คำอธิบาย |
---|---|---|
คำแนะนำ | ข้อมูลหลายปัจจัย[] | รายการคำแนะนำสำหรับปัจจัยที่สองที่จำเป็นในการลงชื่อเข้าใช้ในเซสชันปัจจุบันให้เสร็จสมบูรณ์ |
เซสชัน | MultiFactorSession | ตัวระบุเซสชันสำหรับขั้นตอนการลงชื่อเข้าใช้ปัจจุบัน ซึ่งสามารถใช้เพื่อลงชื่อเข้าใช้ด้วยปัจจัยที่สองให้เสร็จสมบูรณ์ได้ |
เมธอด
วิธีการ | คำอธิบาย |
---|---|
resolveSignIn(การยืนยัน) | ฟังก์ชันตัวช่วยที่จะช่วยผู้ใช้ลงชื่อเข้าใช้ด้วยปัจจัยที่ 2 ให้เสร็จสมบูรณ์โดยใช้ MultiFactorAssertion เพื่อยืนยันว่าผู้ใช้ดำเนินการทดสอบสำหรับปัจจัยที่ 2 สำเร็จแล้ว |
MultiFactorResolver.hints
รายการคำแนะนำสำหรับปัจจัยที่สองที่จำเป็นในการลงชื่อเข้าใช้ในเซสชันปัจจุบันให้เสร็จสมบูรณ์
ลายเซ็น:
readonly hints: MultiFactorInfo[];
MultiFactorResolver.session
ตัวระบุเซสชันสำหรับขั้นตอนการลงชื่อเข้าใช้ปัจจุบัน ซึ่งสามารถใช้เพื่อลงชื่อเข้าใช้ด้วยปัจจัยที่สองให้เสร็จสมบูรณ์ได้
ลายเซ็น:
readonly session: MultiFactorSession;
MultiFactorResolver.resolveSignIn()
ฟังก์ชันตัวช่วยที่จะช่วยผู้ใช้ลงชื่อเข้าใช้ด้วยปัจจัยที่ 2 ให้เสร็จสมบูรณ์โดยใช้ MultiFactorAssertion เพื่อยืนยันว่าผู้ใช้ดำเนินการทดสอบสำหรับปัจจัยที่ 2 สำเร็จแล้ว
ลายเซ็น:
resolveSignIn(assertion: MultiFactorAssertion): Promise<UserCredential>;
พารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
การยืนยัน | MultiFactorAssertion | การยืนยันแบบหลายปัจจัยเพื่อแก้ไขการลงชื่อเข้าใช้ |
การคืนสินค้า:
สัญญา<UserCredential>
สัญญาที่จะแก้ไขด้วยออบเจ็กต์ข้อมูลเข้าสู่ระบบของผู้ใช้
ตัวอย่าง
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
const userCredential = await resolver.resolveSignIn(multiFactorAssertion);
ตัวอย่าง
let resolver;
let multiFactorHints;
signInWithEmailAndPassword(auth, email, password)
.then((result) => {
// User signed in. No 2nd factor challenge is needed.
})
.catch((error) => {
if (error.code == 'auth/multi-factor-auth-required') {
resolver = getMultiFactorResolver(auth, error);
// Show UI to let user select second factor.
multiFactorHints = resolver.hints;
} else {
// Handle other errors.
}
});
// The enrolled second factors that can be used to complete
// sign-in are returned in the `MultiFactorResolver.hints` list.
// UI needs to be presented to allow the user to select a second factor
// from that list.
const selectedHint = // ; selected from multiFactorHints
const phoneAuthProvider = new PhoneAuthProvider(auth);
const phoneInfoOptions = {
multiFactorHint: selectedHint,
session: resolver.session
};
const verificationId = phoneAuthProvider.verifyPhoneNumber(phoneInfoOptions, appVerifier);
// Store `verificationId` and show UI to let user enter verification code.
// UI to enter verification code and continue.
// Continue button click handler
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
const userCredential = await resolver.resolveSignIn(multiFactorAssertion);