Angular Firebase 电子邮件验证验证后错误

2024-06-05

我正在使用电子邮件和密码设置授权功能。一切正常,但当我创建新用户时,应用程序会发送一封带有验证链接的电子邮件。验证电子邮件地址后,我想登录,以便返回登录表单。 emial_verified 保持在“假”状态,在我硬重新加载页面后,这是“真”,但当我从验证页面返回登录页面时则不是。有人能帮我吗?

  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']);
    })
  }

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

电子邮件验证发生在带外(例如:您单击电子邮件客户端中的链接,而不是应用程序中的链接),因此应用程序不知道验证状态已更改。这意味着它无法自动刷新客户端中的 ID 令牌(客户端获取配置文件信息的来源)。

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

另请参阅:

  • Firebase 电子邮件验证未更新状态 https://stackoverflow.com/q/48530554
  • 我刚才在这里给出的答案:Firebase自定义声明如何设置? https://stackoverflow.com/q/54594100
  • Firebase firestore 不更新电子邮件验证状态 https://stackoverflow.com/questions/50894869/firebase-firestore-not-updating-email-verification-status
  • Firebase 电子邮件验证未验证帐户 https://stackoverflow.com/questions/40035854/firebase-email-verification-doesnt-verify-account
  • 单击电子邮件验证链接 firebase 后 user.emailVerified 不会更改 https://stackoverflow.com/questions/37900447/user-emailverified-doesnt-change-after-clicking-email-verification-link-firebas
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular Firebase 电子邮件验证验证后错误 的相关文章

随机推荐

  • Windows XP 和 Vista 编程之间的主要区别是什么?

    从桌面应用程序开发人员的角度来看 Windows XP 开发和 Windows Vista 开发之间有什么区别吗 用户界面 看着Windows Vista 用户体验指南 http msdn microsoft com en us libra
  • 有向无环图的拓扑排序为阶段

    是否有一种算法 给定一个未加权的有向无环图 将所有节点排序到节点集列表中 使得 拓扑顺序被保留 即 对于所有边u gt v v出现在列表中更靠下的集合中u and 列表的长度是最小的 这个问题有名字吗 Example 下图的一种可能的排序是
  • Symfony2 表单提交后刷新同一页面

    我有一个表单 其内容是从数据库创建的 在我的控制器中我有 Route HR manage projectID name hr manage public function manageHRAction Request request pro
  • 让 PHP 脚本永远循环执行队列系统中的计算作业

    目前 我有一个永远在我的服务器上运行的 perl 脚本 检查 SQS 是否有要计算的数据 该脚本已经运行了大约 6 个月 没有出现任何问题 所以 现在我想切换到 PHP 的 CLI 并让脚本永远循环在那里 主要是因为我对PHP比较熟悉 Ba
  • NServiceBus 3.2 示例问题

    我正在尝试运行 AsyncPages 的 NServiceBus 示例 看起来很简单 从 NServiceBus com 下载最新版本 执行bat文件来安装先决条件 打开解决方案 Press F5 在文本框中输入数字 当我这样做时 我遇到了
  • sqrt() 函数不适用于变量参数[重复]

    这个问题在这里已经有答案了 我不知道我是否遗漏了一些明显的东西 但似乎我无法计算 a 的平方根variable在C中 sqrt 函数似乎只适用于常量 这是我的代码 include
  • nodejs gmail api不支持承诺

    Google 推荐使用承诺 https developers google com api client library javascript features promises 但它的代码示例没有 当我修改代码时 我正在努力使 gmail
  • 在不使用魔术字符串的情况下将参数传递给 FakeItEasy-mock?

    我一直在使用Moq http code google com p moq 为了满足我过去几年的嘲笑需求 但看了之后假装简单 http code google com p fakeiteasy 我想尝试一下 我经常想测试是否使用正确的参数调用
  • 基于列重复数据集中的行,但增加行[重复]

    这个问题在这里已经有答案了 我有一个数据集 其中包含项目名称 开始年份和合同期限 我需要将这个数据集开发成时间序列 例如 我的数据集中的一行是 项目 A 开始年份 2003 年 合同期限 5 我想根据合同期限重复每一行 我的数据集如下所示
  • 伊德里斯中的快速排序

    我正在学习 Idris 我想我会尝试为 Vect 类型实现快速排序 但我在使用实用方法时遇到了困难 该方法应该给定一个主元元素和一个向量 将向量分成两部分 一个元素的元素 主元 另一个元素的元素 gt 主元 这对于列表来说很简单 split
  • javascript - Twitter bootstrap jquery 插件未编译用于生产

    我正在使用 Twitter Bootstrap 开发 3 1 Rails 应用程序塞胡纳克的宝石 https github com seyhunak twitter bootstrap rails 在生产模式下 我可以通过管道预编译使用基本
  • 如何用 Java 制作 Windows 7 工具提示

    我一直在网上到处寻找 但没有找到这个小问题的答案 在 Windows 7 中 我认为在 Vista 中 您有一个漂亮的圆形银色工具提示 它看起来比旧的黄色盒装蹩脚工具提示要好得多 下面的 How do I make a Windows 7
  • 版本弃用 Facebook Graph API v2.2

    我们的 Facebook 登录现在无法使用 我们收到了来自 Facebook 开发者门户的消息 应用程序名称 当前可以访问 Graph API v2 2 该 API 将到达其末尾 截至 2017 年 3 月 27 日 有效期为 2 年 为了
  • 通过 Intent 从文件管理器中选择文件

    我想做的 我想获取文件字符串形式的路径 我通过 Android 文件管理器选择该路径 我拥有的 Intent intent new Intent Intent ACTION GET CONTENT intent setType startA
  • 在 Flutter 中将 base64 字符串转换为 PDF 文件

    我正在尝试显示 PDF 文件 但是我从服务器接收到 Base64 字符串格式的 PDF 文件 有什么方法可以直接将 Base64 字符串显示到 PDF 查看器或 WebView 中 而不将其保存到 File 中 检查一下 https sta
  • Android物理引擎[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在研究了 3D 游戏编程之后 很快就明白了为什么物理引擎非常有用 Android 支持哪些物理引擎并且可以在 Android 上使用 关于
  • Mat-table 多行内的多行

    我想要的内容如下图所示 我使用 Angular Material 7 x 并使用 Mat Table 实现 如下所述 https material angular io components table overview https mat
  • boost::graph 算法是否能够使用以前的解决方案更快地解决密切相关的新问题?

    我在下图中定义了最大流量问题 最初 所有四个边缘的容量均为 4 个单位 我求从 0 到 3 的最大流量值 答案是 8 沿路径 0 gt 1 gt 3 4 个单位 沿路径 0 gt 2 gt 3 4 个单位 以下代码创建图表并查找最大流量 i
  • 使用 AJAX 时 Laravel 会话 cookie 未加密

    我即将为我的应用程序创建一个单点登录界面 另一个应用程序发送 AJAX POST 请求 我对用户进行身份验证并返回响应 正在设置会话 cookie 但未加密 相关守则 user User where email email gt first
  • Angular Firebase 电子邮件验证验证后错误

    我正在使用电子邮件和密码设置授权功能 一切正常 但当我创建新用户时 应用程序会发送一封带有验证链接的电子邮件 验证电子邮件地址后 我想登录 以便返回登录表单 emial verified 保持在 假 状态 在我硬重新加载页面后 这是 真 但