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