الفئة المستخدمة لتسهيل الاسترداد من MultiFactorError عندما يحتاج المستخدم إلى تقديم عامل ثانٍ لتسجيل الدخول.
Signature:
export interface MultiFactorResolver
أماكن إقامة
الموقع | النوع | الوصف |
---|---|---|
تلميحات | متعدد العوامل[] | قائمة التلميحات للعوامل الثانية اللازمة لإكمال عملية تسجيل الدخول للجلسة الحالية. |
الجلسة | متعدد العوامل | معرِّف الجلسة لمسار تسجيل الدخول الحالي، والذي يمكن استخدامه لإكمال عملية تسجيل الدخول إلى العامل الثاني. |
الطُرق
الطريقة | الوصف |
---|---|
resolveSignIn(assertion) | هي دالة مساعدّة تساعد المستخدمين على إكمال عملية تسجيل الدخول بعامل ثانٍ باستخدام MultiFactorAssertion لتأكيد إكمال المستخدم لتحدي العامل الثاني بنجاح. |
Multifactorr.hints
قائمة التلميحات للعوامل الثانية اللازمة لإكمال عملية تسجيل الدخول للجلسة الحالية.
Signature:
readonly hints: MultiFactorInfo[];
جلسة MultiFactorAnswerr.session
معرِّف الجلسة لمسار تسجيل الدخول الحالي، والذي يمكن استخدامه لإكمال عملية تسجيل الدخول إلى العامل الثاني.
Signature:
readonly session: MultiFactorSession;
MultiFactorsolutionsr.resolveSignIn()
هي دالة مساعدّة تساعد المستخدمين على إكمال عملية تسجيل الدخول بعامل ثانٍ باستخدام MultiFactorAssertion لتأكيد إكمال المستخدم لتحدي العامل الثاني بنجاح.
Signature:
resolveSignIn(assertion: MultiFactorAssertion): Promise<UserCredential>;
المَعلمات
المعلمة | النوع | الوصف |
---|---|---|
تأكيد | التأكيد المتعدّد العوامل | التأكيد المتعدّد العوامل المستخدم لحل عملية تسجيل الدخول. |
المرتجعات:
الوعد<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);