Angular-Firebase仅在EmailVerification后激活/创建用户

时间:2018-07-13 19:41:16

标签: angular firebase firebase-authentication angularfire2

我使用库angular/angularfire2,并希望通过它管理我的身份验证过程。我只想在电子邮件验证过程成功的情况下创建一个用户。就目前而言,我是如何实现它的,似乎在验证之前已经在数据库中创建了用户: enter image description here

到目前为止,我的服务如下:

import { Injectable } from '@angular/core';
import {AngularFireAuth} from 'angularfire2/auth';
import {RegisterDataModel} from '../../components/register/register-data.model';

@Injectable({
  providedIn: 'root'
})
export class RegistrationService {

  constructor(private afAuth: AngularFireAuth) {
  }

  public register(register: RegisterDataModel): void {
    this.afAuth.auth.createUserWithEmailAndPassword(register.email, register.password)
      .then(() => {
        const user = this.afAuth.auth.currentUser;
        user.sendEmailVerification().then(() => console.log('please verify your email'))
          .catch((err) => console.log(err));
      }).catch(
      (err) => console.log(err));

有人知道在创建/激活其身份验证之前如何验证用户吗?

1 个答案:

答案 0 :(得分:1)

不能。您必须先创建帐户,然后才能验证帐户的电子邮件地址,这就是在后端编写Firebase的方式。

如果您希望在验证电子邮件之前限制对应用程序的访问,则可以轻松编写数据库规则以阻止访问-see this thread here

编辑-作为一种更为复杂的选择,您可以通过使用Cloud创建自己的验证电子邮件(带有自己的自定义验证链接)来获得相同的体验功能,然后在单击该验证链接后使用另一个云功能来创建用户帐户。