【问题标题】:Angular - firebase activate/create user only after EmailVerificationAngular - firebase 仅在 EmailVerification 后激活/创建用户
【发布时间】:2018-07-13 19:41:15
【问题描述】:

我使用库 angular/angularfire2 并想用它来管理我的身份验证过程。只有当电子邮件验证过程成功时,我才想创建一个用户。现在我是如何实现它的,似乎在验证之前已经在我的数据库中创建了用户:

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

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));

有谁知道在创建/激活他的账户之前如何验证用户?

【问题讨论】:

    标签: angular firebase firebase-authentication angularfire2


    【解决方案1】:

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

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

    编辑 - 作为一个更复杂的替代方案,您可以通过使用云创建自己的验证电子邮件(使用您自己的自定义验证链接)来实现相同的体验函数,然后在点击该验证链接后使用另一个云函数创建用户帐户。

    【讨论】:

      猜你喜欢
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      相关资源
      最近更新 更多