# #firebase #firebase-authentication #firebaseui #firebase-admin
Вопрос:
- Мне нужно создавать пользователей на стороне сервера с помощью администратора Firebase.
- Я запрещаю регистрацию с помощью Firebaseui со
disableSignUp
статусом, установленным наtrue
. - Я хочу использовать только ссылку для входа по электронной почте.
Когда я создаю пользователя (на Python) с помощью
auth.create_user(email=email, display_name=name, photo_url=profile_image_url)
пользователь создается, но у пользователя его нет providerData
, и ему отображается сообщение:
newuser@example.com is not authorized to view the requested page.
Это неожиданно — в документации Firebaseui говорится, что пользователи все еще могут быть созданы с помощью API, и можно было бы ожидать, что такие пользователи смогут войти в систему!
Когда я создаю пользователя, как указано выше, но с паролем, ему разрешается войти в систему, но ему отображается запрос пароля.
Как я могу создать нового пользователя электронной почты и принудительно войти по ссылке электронной почты?
Ответ №1:
У меня уже есть облачная функция для уведомления пользователей о создании их учетной записи. Я добавил
var actionCodeSettings = {
url: 'https://example.com/welcome',
handleCodeInApp: true,
};
const link = await admin.auth().generateSignInWithEmailLink(user.email, actionCodeSettings);
к функции, и теперь они получают ссылку для завершения настройки своей учетной записи. При переходе на «/добро пожаловать » открывается окно firebaseui-auth-container
, в котором отображается сообщение «Подтвердите свой адрес электронной почты для завершения входа». Электронное письмо будет подтверждено, и пользователь будет изменен на emailLink
пользователя. Это вполне естественный поток, почти как если бы он был создан для этой цели…