Проверка подлинности пользователя администратором Firebase не отправляет sms, только создает пользователей напрямую

# #python #firebase #firebase-admin

Вопрос:

Я новичок в firebase admin и хочу, чтобы администратор firebase через мой сервер python проверил номер телефона пользователя перед созданием пользователя

Я использую инструкции, приведенные в приведенной ниже ссылке на документацию https://firebase.google.com/docs/auth/admin/manage-users#update_a_user

Прямо сейчас я могу успешно создавать пользователей, используя поток аутентификации firebases, используя телефонные номера пользователей, единственная проблема заключается в том, что на введенный пользователем номер телефона не отправляется SMS

Как заставить администратора firebase отправить SMS на номер телефона пользователя перед его регистрацией?

——ПРАВКИ——

 from rest_framework.decorators import api_view, renderer_classes
from rest_framework.renderers import JSONRenderer, TemplateHTMLRenderer


@api_view(('POST',))
@renderer_classes((TemplateHTMLRenderer, JSONRenderer))
def SendPhoneCodeView(request):
    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import auth

    cred = credentials.Certificate('PhoneNumberVerify/firebase-admin.json')
    firebase_admin.initialize_app(cred)
    phone = request.data.get('phone')
    print('phone is')
    print(phone)
    user = auth.create_user(phone_number=phone)

    print('User Created Successfully')
    print(user.uid)
 

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

1. Я отредактировал вопрос, чтобы включить код, который успешно создают пользователи. Проблема в том, что SMS-сообщения для проверки не отправляются до создания пользователя на консоли firebase

Ответ №1:

SDK администратора считаются «источником истины», и любые данные, которые вы записываете для аутентификации Firebase с их помощью, считаются правильными и действительными. Вот почему добавление номера телефона в учетную запись пользователя не вызывает подтверждения SMS — предполагается, что он принадлежит этому пользователю.

Нет никакого способа, которым вы можете генерировать OTP или запускать SMS для проверки подлинности телефона Firebase с помощью SDK администратора, в отличие от ссылок действий проверки подлинности по электронной почте. Вам придется полагаться на SDK клиента Firebase для отправки SMS, когда пользователь пытается войти в систему. Если они являются целевым пользователем и у них есть телефон, они смогут войти в систему.

Вы можете прочитать об этом подробнее здесь -> >Отправьте код подтверждения на телефон пользователя

Если вы действительно хотите проверить номер телефона пользователя перед созданием его учетной записи, вам придется вручную создать поток проверки подлинности и управлять им, а также использовать такие службы, как Twilio, для отправки SMS. Это будет включать в себя создание собственных пользовательских кодов и хранение их в базе данных вместе с созданием кода проверки, а затем его проверку, добавив ограничения скорости, чтобы никто не мог случайным образом попробовать все возможные коды.

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