点击后,Firebase身份验证电子邮件已过期

时间:2018-05-01 13:30:14

标签: firebase firebase-authentication

我正在我的应用程序中实现电子邮件登录,它在我设置项目时工作,即我实现它时。我可能已经在我的谷歌控制台中删除了一些API密钥,但现在每次我点击电子邮件中的链接(验证或重置)时,我都会收到消息:

请尝试重新验证您的电子邮件

您的验证电子邮件已过期或链接已被使用的请求

我知道这可能与this question重复,但我似乎无法找到答案。

我收到的电子邮件的链接附有API密钥。附加的API密钥不会出现在我的Google云端控制台中的任何位置。它出现在我的firebase控制台下:

Web API key: the_web_api_key

因此,我在电子邮件中收到的链接如下所示:

https://<appName>.firebaseapp.com/__/auth/action?mode=verifyEmail&oobCode= <oobCode>&apiKey=<the_web_api_key>

但是这个the_web_api_key与我的配置初始化对象中的apiKey不匹配。在那里,您可以找到旧版服务器密钥

let config = {
  apiKey: legacy_server_key,
  authDomain: "<appname>.firebaseapp.com",
  databaseURL: "https://<appname>.firebaseio.com",
  projectId: "<appname>",
  storageBucket: "<appname>",
  messagingSenderId: "<senderId>"
}

旧版服务器密钥在我的Google云端控制台中显示为服务器密钥。

也许这可能是问题所在?我应该在初始化对象中使用Web Api Key吗?我记得这在过去是如何工作的,所以我很困惑。

1 个答案:

答案 0 :(得分:1)

重置密码的一种可行方法是,在密码重置电子邮件链接中将旧的API密钥替换为新的API密钥。

从重置密码时向您发送的密码重置电子邮件中获取链接:

https://(PROJECT-ID).firebaseapp.com/__/auth/action?mode=resetPassword&oobCode=DLAe_N4ZmPUA0r7TYa0Il9NCjsc1edkt7F3PouX060UAAAFyPoDCUg&apiKey=(OLD-API-KEY)&lang=en

并使用新密钥进行更新:

https://(PROJECT-ID).firebaseapp.com/__/auth/action?mode=resetPassword&oobCode=DLAe_N4ZmPUA0r7TYa0Il9NCjsc1edkt7F3PouX060UAAAFyPoDCUg&apiKey=(NEW-API-KEY)&lang=en

您可以在Google的控制台中找到您的API密钥: https://console.cloud.google.com/home/dashboard?folder=&organizationId=&project=(PROJECT-ID)

enter image description here