当前位置: 首页 > 知识库问答 >
问题:

使用angular firebase向不同的电子邮件发送电子邮件以验证注册

姜献
2023-03-14

我能够在注册前验证用户电子邮件。但我想收到验证电子邮件到我的电子邮件地址以完成注册过程。我想收到我的电子邮件地址的通知,并且只有在我批准后才完成注册过程。我检查了电子邮件验证:auth-service.ts

 async SignIn(email,password)
    {
     const loading =await this.LoadingCtrl.create({
       message:'Authenticating..',
       spinner:"crescent",
       showBackdrop:true
     });
     loading.present();
     this.afauth.setPersistence(firebase.default.auth.Auth.Persistence.LOCAL)
     .then(()=>{
       this.afauth.signInWithEmailAndPassword(email,password)
       .then((data)=>{
         if(!data.user.emailVerified){
           loading.dismiss();
           this.toast('Please check your credentials','warning');
           this.afauth.signOut();
         }else{
           loading.dismiss();
           this.router.navigate(['/home']);
         }
       })
       .catch(error=>{
         loading.dismiss();
         this.toast(error.message,'danger');
       })
     })
     .catch(error=>{
       loading.dismiss();
       this.toast(error.message,'danger');
     });
    } 

注册:

async register(){
    if(this.firstname && this.lastname && this.email && this.password){
      const loading =await this.loadingCtrl.create({
        message:'Processing...',
        spinner:'crescent',
        showBackdrop:true
      });
      loading.present();
      
      this.afauth.createUserWithEmailAndPassword(this.email,this.password)
      .then((data)=>{
        data.user.sendEmailVerification();
        this.afs.collection('user').doc(data.user.uid).set({
          'userId':data.user.uid,
          'userEmail':this.email,
          'userFirstname':this.firstname,
          'userLastname':this.lastname
        })
        .then(()=>{
          loading.dismiss();
          this.toast('Registration Success','success');
          this.router.navigate(['/login']);
        })
        .catch(error=>{
          loading.dismiss();
          this.toast(error.message,'danger')
        })
      })
    }
  }

共有1个答案

太叔栋
2023-03-14

这听起来像是你想批准用户可以使用你的应用,这与允许他们验证自己的电子邮件地址不同。

虽然这是一个有效的用例,但Firebase身份验证没有此用例的内置功能。

Firebase身份验证只处理身份验证部分,因此允许用户提供其凭据-并验证这些凭据。仅允许具有已验证电子邮件地址的用户或您批准的用户使用该应用程序是授权,也是您必须自己构建的应用程序逻辑的一部分。

对于仅允许已批准的用户访问应用/数据,常见过程是:

    < li >在数据库中创建已批准用户的列表,或者将用户不能自行设置的< code>isApproved字段添加到您已有的配置文件文档中。 < li >在对用户进行身份验证后,在您的应用程序代码中检查他们是否在允许用户列表中,如果是,则仅允许他们继续进入应用程序的下一个屏幕。 < li >如果您的数据库安全规则仅允许用户读取批准用户列表中的数据。 < li >在您拥有的任何自定义后端代码中,在执行用户请求之前检查用户是否被批准。
 类似资料:
  • 问题内容: 我正在使用Apache Commons电子邮件库发送电子邮件,但无法通过GMail SMTP服务器发送电子邮件。 任何人都可以提供适用于GMail SMTP服务器和其他服务器的示例代码吗? 我正在使用以下无效的代码: 问题答案: 将电子邮件发送到GMail SMTP服务器需要身份验证和SSL。用户名和密码非常简单。确保设置了以下属性以启用身份验证和SSL,并且该属性应该可以正常工作。

  • 我正在试验Cognito,但我似乎不知道如何让Cognito向用户发送验证电子邮件,让他们验证他们的电子邮件地址。 这是在我的后端服务器中,我从新用户那里收到了用户名、电子邮件和密码。我正在抑制消息操作,因为我不希望用户收到临时密码。相反,我想将密码设置为他们已经提供给我的密码。 然而,用户从未收到验证其电子邮件地址的电子邮件。在用户池配置中,我在“要验证哪些属性”下选择了“电子邮件”我已经在SE

  • 我正在开发PHP应用程序,注册后,使用Amazon SES(简单电子邮件服务)向注册的电子邮件地址发送激活邮件。 但是SES只向经过验证的用户发送电子邮件。 如何将激活链接发送到任何未经验证的电子邮件地址?

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送

  • 我正在尝试使用CodeIgniter的电子邮件库发送电子邮件。这是我写的代码。 错误:这是我得到的错误。 遇到以下SMTP错误:0php_network_getaddresses:getaddrinfo失败:名称或服务未知无法发送数据:AUTH LOGIN发送AUTH LOGIN命令失败。错误:无法发送数据:邮件从:从:遇到以下SMTP错误:无法发送数据:RCPT TO:到:遇到以下SMTP错误:

  • 发送电子邮件时,页脚中有下面的标准消息。 此电子邮件是使用CakePHP框架发送的,http://cakephp.org. 它似乎使用了这个: 我的控制器里有这个。 创建了以下视图: /应用程序/查看/电子邮件/文本/梦想。ctp /应用程序/视图/布局/电子邮件/文本/梦想。ctp 是否有任何其他设置我错过了cakephp使用我的布局? *注:如果我重新命名我的梦想。ctp默认。ctp它使用那个