Генерация письма подтверждения через firebase с использованием angular / spring-boot

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

  1. Регистрация через страницу регистрации (Любой)
  2. Администратор может создать пользователя после входа в систему.

В угловых 7

SignUp(email, password) {
    return this.afAuth.auth.createUserWithEmailAndPassword(email, password)
    .then((result) => {
        // You have been successfully registered!"  
        this.afAuth.auth.currentUser.sendEmailVerification()
            .then(() => {
                // Please verify your email
            })
    }).catch((error) => {
        // Error while registering a user 
    })
}

Если новая учетная запись была создана, пользователь автоматически входит в систему. - Firebase Ref

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

Весной загрузки

CreateRequest request = new CreateRequest().setEmail(user.getEmail()).setPassword(user.getPassword());
UserRecord userRecord = FirebaseAuth.getInstance().createUser(request);

Это успешно создает пользователя без изменения состояния пользователя, вошедшего в систему.

Есть ли способ отправить подтверждение по электронной почте во второй сценарий (через бэкэнд или фронтэнд)? Заранее спасибо.

Всего 1 ответ


Ну, я обновил последнюю зависимость в бэк-энде (Spring-boot), у которого есть generateEmailVerificationLink();

<dependency>
    <groupId>com.google.firebase</groupId>
    <artifactId>firebase-admin</artifactId>
    <version>6.8.1</version>
</dependency>

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

// Generating verification link with the help of firebase
String link=FirebaseAuth.getInstance().generateEmailVerificationLink(user.getEmail());

// Sending the link through custome mail service
emailService.sendMail("Your mail id", user.getEmail(), "Verfication email", link);

Есть идеи?

10000