MultiFactorResolver interface

کلاسی که برای تسهیل بازیابی از MultiFactorError زمانی که کاربر نیاز به ارائه فاکتور دوم برای ورود به سیستم دارد استفاده می شود.

امضا:

export interface MultiFactorResolver 

خواص

ویژگی تایپ کنید شرح
نکات MultiFactorInfo [] فهرست نکات مربوط به عوامل دوم مورد نیاز برای تکمیل ورود به سیستم برای جلسه جاری.
جلسه MultiFactorSession شناسه جلسه برای جریان ورود به سیستم فعلی، که می تواند برای تکمیل ورود عامل دوم استفاده شود.

مواد و روش ها

روش شرح
solveSignIn(اظهار) یک تابع کمکی برای کمک به کاربران برای تکمیل ورود به سیستم با فاکتور دوم با استفاده از MultiFactorAssertion که تأیید می کند کاربر چالش فاکتور دوم را با موفقیت انجام داده است.

MultiFactorResolver.hints

فهرست نکات مربوط به عوامل دوم مورد نیاز برای تکمیل ورود به سیستم برای جلسه جاری.

امضا:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.session

شناسه جلسه برای جریان ورود به سیستم فعلی، که می تواند برای تکمیل ورود عامل دوم استفاده شود.

امضا:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

یک تابع کمکی برای کمک به کاربران برای تکمیل ورود به سیستم با فاکتور دوم با استفاده از MultiFactorAssertion که تأیید می کند کاربر چالش فاکتور دوم را با موفقیت انجام داده است.

امضا:

resolveSignIn(assertion: MultiFactorAssertion): Promise<UserCredential>;

مولفه های

پارامتر تایپ کنید شرح
ادعا MultiFactorAssertion ادعای چند عاملی برای حل و فصل ورود به سیستم با.

برمی گرداند:

Promise< 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);