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

Firebase仅发送已过期的电子邮件验证链接

益锦程
2023-03-14

收到验证邮件后,我立即点击了验证链接,但答案仍然只有:

再次尝试验证电子邮件。验证电子邮件的请求已过期或链接已被使用

用于发送验证邮件的当前代码如下所示,并在注册后立即运行。

firebase.auth().onAuthStateChanged(function(user) {
    user.sendEmailVerification();
});

所需的firebase脚本如下所示:

<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script>
<script>
  function init(){
    var config = {
      apiKey: "<asdf>",
      authDomain: "<asdf>.firebaseapp.com",
      databaseURL: "<asdf>.firebaseio.com"
    };
    firebase.initializeApp(config);
  }
</script>
<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase-database.js"></script>

并且启用电子邮件/密码作为登录方法。我将该设置与另一个Firebase项目进行了比较,该项目有工作验证邮件,但没有发现差异。

任何人都知道可能是什么问题?

共有3个答案

景建业
2023-03-14

确保您的登录提供商有电子邮件和密码提供商

邢星波
2023-03-14

如果您有多个APIKey,您可能需要检查此项。

我有多把钥匙。我将它们分别用于不同的客户端应用程序。

如其他答案中所述,电子邮件验证链接包括一个apiKey。在我的例子中,apiKey与我用于特定客户端应用程序的apiKey不同。

因此,解决方案是找出在电子邮件验证中发送的apiKey并添加

我浪费了几个小时,它毁了我给客户的演示。希望此解决方案可以节省其他人的时间和$

很明显,错误消息非常模糊。这里的任何答案都可能会引导您找到解决方案。所以,耐心点,喝杯咖啡,看看哪一种适合你的情况。我说这些都是因为我已经精疲力竭了好几个小时,希望你不必这么做。

总结:

如果您有多个 apiKey,并且您正在使用 HTTP 引用执行应用程序限制,请确保

白昊乾
2023-03-14

答案就在这里:stackoverflow.com/a/38274531/213156 非常感谢,特拉维斯·克里斯蒂安!

如果您在 Google API 控制台中列出了应用 API 密钥的任何 HTTP 引荐来源网址,则需要包含电子邮件来源的应用本身:[app-name].firebaseapp.com。否则,此域对于应用的密钥无效。

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

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

  • 我正在构建一个 Firebase 应用,并且刚刚实施了电子邮件验证流程。但是,我认为如果验证电子邮件不会过期,这可能是一个问题。这样,用户只需使用随机电子邮件地址注册而不对其进行验证,这意味着具有该电子邮件地址的真实人员无法再注册(firebase.auth().createUserWithEmailAndPassword将仅在“身份验证”选项卡中创建此用户,并且该电子邮件地址无法再使用)。有没有

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

  • 当我注册一个用户,或单击“单击此处请求另一个”时,不会发送验证邮件,尽管它的回答是“一个新的验证链接已发送到您的电子邮件地址”。我检查了我的和文件,并使用tinker和

  • 我有一个关于firebase电子邮件验证工作的问题。 案例: 我的用户已登录我的网站(使用设备A)。 他们使用其他浏览器或设备(设备B)创建另一个帐户,但他们使用他已登录的浏览器和设备(设备A)打开电子邮件验证链接。 已经登录的用户(在设备A中)发生了什么?firebase是将它们签出还是只是验证新的电子邮件,但仍然与当前用户签入?