Когда вы отправляете ссылку для проверки электронной почты пользователю, ссылка очень похожа на следующую
http://localhost:4200/new-password?mode=verifyEmail&oobCode=OOBCODEHERE&apiKey=APIKEYHERE&lang=en
Когда пользователь нажимает ссылку, он перенаправляет вас на маршрут с новым паролемвашего домена (localhost: здесь 4200).
Вы можете изменить маршрут и компонент в firebase аутентификации> Шаблоны> Шаблоны проверки адреса электронной почты, изменив URL, отправленный на адрес электронной почты пользователя.
Вам нужнореализовать вашу логику проверки электронной почты с помощью методов checkActionCode и applyActionCode, используя oobCode, предоставленный в URL.
Я реализовал это, как показано ниже
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import * as firebase from 'firebase';
@Component({
selector: 'app-new-password',
templateUrl: './new-password.component.html',
styleUrls: ['./new-password.component.css']
})
export class NewPasswordComponent implements OnInit {
emailVerificationCode:string;
apiKey:string;
constructor(private activatedRoute: ActivatedRoute) {
this.activatedRoute.queryParams.subscribe(params => {
this.emailVerificationCode = params['oobCode'];
});
}
ngOnInit() {
firebase.auth().checkActionCode(this.emailVerificationCode).then(
(user)=>{
console.log("User Info KKKKK : " + user.data.email);
firebase.auth().applyActionCode(this.emailVerificationCode).then(
()=>{
let ref=firebase.database().ref('verifiedEmails/'+user.data.email.replace('.','*'));
ref.set(true).then(
()=>{
console.log("Email Verfied");
}
).catch(
(error)=>{
console.log("Couldn't set true : " + error.message);
}
)
}
).catch(
(error)=>{
console.log("Error occured : " + error.message);
}
)
}
)
}
}
Ссылка: Алекс от https://groups.google.com/forum/#!topic/firebase-talk/EGYwg2vjRq4