我使用库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));
有人知道在创建/激活其身份验证之前如何验证用户吗?
答案 0 :(得分:1)
不能。您必须先创建帐户,然后才能验证帐户的电子邮件地址,这就是在后端编写Firebase的方式。
如果您希望在验证电子邮件之前限制对应用程序的访问,则可以轻松编写数据库规则以阻止访问-see this thread here。
编辑-作为一种更为复杂的选择,您可以通过使用Cloud创建自己的验证电子邮件(带有自己的自定义验证链接)来获得相同的体验功能,然后在单击该验证链接后使用另一个云功能来创建用户帐户。