Аутентификация Firebase: обновить потерянный номер телефона

#firebase #firebase-authentication

# #firebase #firebase-аутентификация

Вопрос:

Каков наилучший путь, если пользователь потерял свой номер телефона и хочет обновить свою учетную запись новым номером телефона? У нас уже есть их электронная почта.

Проблема в том, что Firebase необходимо отправить SMS на старый номер телефона перед его обновлением, который пользователь потерял.

Моя лучшая идея на данный момент — аутентифицировать их по электронной почте, затем отправить запрос на наш серверный сервер с новым номером телефона, который они ввели, а затем использовать Firebase Admin SDK для обновления номера телефона пользователя. Здесь есть только одна проблема: как мне проверить этот новый номер телефона, чтобы убедиться, что пользователь не просто добавил какой-то случайный?

Ответ №1:

Я отвечаю на свой собственный вопрос тем путем, по которому я шел:

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

После того, как пользователь нажимает на ссылку, мы показываем экран в приложении, который запрашивает новый номер телефона.

После ввода нового телефонного номера мы отправляем его на наш серверный сервер вместе с токеном в deeplink. Мы проверяем токен, затем используем Twilio для отправки подтверждающего SMS-сообщения на этот новый номер.

Тем временем пользователь уже был отправлен на экран с кодом подтверждения. Они получают SMS-сообщение Twilio и вводят код. Мы отправляем этот код на наш серверный сервер и проверяем правильность введенного ими кода.

Если код правильный, мы используем Firebase Admin API для обновления номера телефона этого пользователя на новый.

Ответ №2:

В Firebase есть метод аутентификации по телефону

Для Android: https://firebase.google.com/docs/auth/android/phone-auth ?authuser = 0 # отправить код подтверждения на телефон пользователя

Для Интернета: https://firebase.google.com/docs/auth/web/phone-auth#send-a-verification-code-to-the-users-phone

Для IOS: https://firebase.google.com/docs/auth/ios/phone-auth ?authuser = 0 # отправить код подтверждения на телефон пользователя

Редактировать

Изменить номер телефона пользователя можно с помощью приведенного ниже метода

 PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    user.updatePhoneNumber(credentials)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {

                    }
                }
            });
 

Проблема в том, что вам нужно отправить код подтверждения на старый номер телефона пользователя (ссылки выше), чтобы создать PhoneAuthCredential (ссылку).

Я не знаю способа обойти это с помощью firebase

Комментарии:

1. Это никоим образом не отвечает на мой вопрос.