Angular - firebase activate/create 用户仅在 EmailVerification 之后
Angular - firebase activate/create user only after EmailVerification
我使用库 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));
有谁知道如何在creating/activating他的acc之前验证用户?
你不能。您必须先创建帐户,然后才能验证帐户的电子邮件地址,这就是 Firebase 在后端的写法。
如果您想在验证电子邮件之前限制对您的应用程序的访问,您可以轻松编写数据库规则来阻止访问 - 。
编辑 - 作为一个复杂得多的替代方案,您可以通过创建自己的验证电子邮件(使用您自己的自定义验证-link) 使用一个云函数,然后在验证后使用另一个云函数创建用户帐户-link 已被点击。
我使用库 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));
有谁知道如何在creating/activating他的acc之前验证用户?
你不能。您必须先创建帐户,然后才能验证帐户的电子邮件地址,这就是 Firebase 在后端的写法。
如果您想在验证电子邮件之前限制对您的应用程序的访问,您可以轻松编写数据库规则来阻止访问 -
编辑 - 作为一个复杂得多的替代方案,您可以通过创建自己的验证电子邮件(使用您自己的自定义验证-link) 使用一个云函数,然后在验证后使用另一个云函数创建用户帐户-link 已被点击。