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

验证后角度火灾库电子邮件验证错误

勾俊
2023-03-14

我正在用电子邮件和密码设置授权功能。一切正常,但当我创建一个新用户时,应用程序会发送一封带有验证链接的电子邮件。在我验证电子邮件地址后,我想登录,因此我返回登录表单。在我硬重新加载页面后,emial_。有人能帮我吗?

  constructor(
    public afs: AngularFirestore,   // Inject Firestore service
    public afAuth: AngularFireAuth, // Inject Firebase auth service
    public router: Router,  
    public ngZone: NgZone // NgZone service to remove outside scope warning
  ) {   

    /* Saving user data in localstorage when 
    logged in and setting up null when logged out */
    this.afAuth.authState.subscribe(user => {
      if (user) {
        this.userData = user;
        localStorage.setItem('uid', this.userData.uid);
        localStorage.setItem('user', JSON.stringify(this.userData));
        JSON.parse(localStorage.getItem('user'));
      } else {
        localStorage.setItem('user', null);
        JSON.parse(localStorage.getItem('user'));
      }
    })
  }

// Sign up with email/password
  SignUp(email, password) {
    return this.afAuth.auth.createUserWithEmailAndPassword(email, password)
      .then((result) => {
        console.log(result);
        /* Call the SendVerificaitonMail() function when new user sign 
        up and returns promise */
        this.SendVerificationMail();
        this.SetUserData(result.user);
      }).catch((error) => {
        window.alert(error.message)
      })
  }

  // Send email verfificaiton when new user sign up
  SendVerificationMail() {
    return this.afAuth.auth.currentUser.sendEmailVerification()
    .then(() => {
      this.router.navigate(['verify-email-address']);
    })
  }

共有1个答案

康烨伟
2023-03-14

这不是错误,而是预期的行为。

电子邮件验证发生在带外(就像:你在你的电子邮件客户endpoint击一个链接,而不是在应用程序中),所以应用程序不知道验证状态被改变。这意味着它不能自动刷新客户端中的ID令牌,而ID令牌是客户端获取配置文件信息的来源。

令牌每小时自动刷新一次,因此最终会更新。如果您想更快地获得更新的值,可以强制令牌刷新。

另请参见:

    < li>Firebase电子邮件验证未更新状态 < li >我刚才在这里给出的答案是:Firebase自定义声明如何设置? < li>Firebase firestore不更新电子邮件验证状态 < li>Firebase电子邮件验证不验证帐户 < li >单击电子邮件验证链接firebase后user.emailVerified不变
 类似资料:
  • 我是Firebase的菜鸟。我要求一种设置电子邮件验证的分步指南。 目前,我的应用程序使用基本电子邮件密码登录。我希望对用户进行验证,以便根据用户的电子邮件验证属性隐藏内容。我正在调用.sendEmailVerification(),它会发送到当前用户的电子邮件,但是,每当我单击电子邮件中的链接时,它都说该链接已过期或有人已使用它,这也不会更改属性。我怀疑这与api管理器有关。我目前已将我的网站托

  • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。

  • 问题内容: 我检查了用户是否通过电子邮件验证。但是,无论我发送并确认了多少电子邮件,验证状态仍为。检查时我做错什么了吗? 问题答案: 我如何实现此功能的方法是添加一个 带有时间间隔的,它将检查用户是否已通过验证,然后在完成验证后终止计时器。 检查您当前用户状态的功能:

  • 如何使用firebase中的验证电子邮件验证使用电子邮件和密码登录的用户?这背后的逻辑是如何工作的,它在代码中会是什么样子? 解决方案/帮助:对于那些仍在寻找答案的人,我找到了这篇文章 堆栈溢出 帖子

  • 我检查了用户是否通过电子邮件进行验证。但是,无论我发送并确认了多少封电子邮件,验证状态仍然是。我在检查时是否做错了什么?

  • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email