Firebase: повторная аутентификация с phoneNumber - PullRequest
0 голосов
/ 12 февраля 2019

Я знаю, что могу повторно подтвердить подлинность с помощью электронной почты следующим образом.

var user = firebase.auth().currentUser;
var credentials = firebase.auth.EmailAuthProvider.credential(
  user.email,
  'yourpassword'
);
user.reauthenticateWithCredential(credentials);

Но как я могу повторно подтвердить подлинность, если я использую phoneNumber в качестве метода входа?

1 Ответ

0 голосов
/ 21 февраля 2019

Это очень похоже на то, как вы входите с помощью номера телефона.Вы можете сделать это двумя способами:

Используя reauthenticateWithPhoneNumber:

const recaptchaVerifier = new firebase.auth.RecaptchaVerifier(
    container, parameters, firebase.app());
recaptchaVerifier.render();
user.reauthenticateWithPhoneNumber(user.phoneNumber, recaptchaVerifier)
  .then((confirmationResult) => {
    return confirmationResult.confirm(prompt('Enter your SMS code'));
  })
  .then((userCredential) => {
    // User successfully reauthenticated.
  });

Используя reauthenticateWithCredential:

const recaptchaVerifier = new firebase.auth.RecaptchaVerifier(
    container, parameters, firebase.app());
recaptchaVerifier.render();
const phoneAuthProvider = new firebase.auth.PhoneAuthProvider(auth);
phoneAuthProvider.verifyPhoneNumber(user.phoneNumber, recaptchaVerifier)
  .then((verificationId) => {
    const credential = firebase.auth.PhoneAuthProvider.credential(
        verificationId, prompt('Enter your code'));
    return user.reauthenticateWithCredential(credential);
  })
  .then((userCredential) => {
    // User successfully reauthenticated.
  });
...