Kullanıcının oturum açmak için ikinci bir faktör sağlaması gerektiğinde MultiFactorError'dan kurtarma işlemini kolaylaştırmak için kullanılan sınıf.
İmza:
export interface MultiFactorResolver
Özellikler
Özellik | Tür | Açıklama |
---|---|---|
ipuçları | MultiFactorInfo[] | Geçerli oturumda oturum açma işleminin tamamlanması için gereken ikinci faktörlere yönelik ipuçları listesi. |
oturum | MultiFaktörOturum | İkinci faktör oturum açma işlemini tamamlamak için kullanılabilen mevcut oturum açma akışının oturum tanımlayıcısı. |
Yöntemler
Yöntem | Açıklama |
---|---|
resolveSignIn(assertion) | MultiFactorAssertion ile kullanıcının ikinci faktör sorgulamasını başarıyla tamamladığını onaylayan, ikinci bir faktör ile oturum açma işlemini tamamlamaya yardımcı olan yardımcı işlev. |
MultiFaktör Çözümleyici.ipuçları
Geçerli oturumda oturum açma işleminin tamamlanması için gereken ikinci faktörlere yönelik ipuçları listesi.
İmza:
readonly hints: MultiFactorInfo[];
MultiFaktör Çözümleyici.oturum
İkinci faktör oturum açma işlemini tamamlamak için kullanılabilen mevcut oturum açma akışının oturum tanımlayıcısı.
İmza:
readonly session: MultiFactorSession;
MultiFaktörÇözümleyici.resolveSignIn()
MultiFactorAssertion ile kullanıcının ikinci faktör sorgulamasını başarıyla tamamladığını onaylayan, ikinci bir faktör ile oturum açma işlemini tamamlamaya yardımcı olan yardımcı işlev.
İmza:
resolveSignIn(assertion: MultiFactorAssertion): Promise<UserCredential>;
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
onaylama | MultiFactorAssertion | Oturum açmayı çözümlemek için kullanılacak çok öğeli onayı. |
Şunu döndürür:
Promise<UserCredential> (Kullanıcı Kimlik Bilgisi)
Kullanıcı kimlik bilgisi nesnesiyle çözümlenen taahhüt.
Örnek
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
const userCredential = await resolver.resolveSignIn(multiFactorAssertion);
Örnek
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);