# #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. Это будет включать в себя создание собственных пользовательских кодов и хранение их в базе данных вместе с созданием кода проверки, а затем его проверку, добавив ограничения скорости, чтобы никто не мог случайным образом попробовать все возможные коды.
Я не вижу какой-либо серьезной угрозы безопасности (если только у кого-то другого нет своего телефона или номер не передан кому-то другому) или что-то в том, чтобы не проверять номер перед созданием учетной записи, пользователям потребуется доступ к телефону, чтобы войти в систему в любое время.