我正在我的应用程序中实现电子邮件登录,它在我设置项目时(即在我实现它时)有效。我可能在我的谷歌控制台或其他东西中删除了一些 API key ,但现在每次我点击电子邮件中的链接(验证或重置)时,我都会收到消息:
尝试再次验证您的电子邮件
您验证电子邮件的请求已过期或链接已被使用
我知道这可能是 this question 的副本,但是我似乎找不到答案。
我收到的电子邮件链接附有 API key 。附加的 API key 没有出现在我的谷歌云控制台中的任何地方。它出现在我的 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
不匹配在我的配置初始化对象中。您可以在那里找到旧版服务器 key :
let config = {
apiKey: legacy_server_key,
authDomain: "<appname>.firebaseapp.com",
databaseURL: "https://<appname>.firebaseio.com",
projectId: "<appname>",
storageBucket: "<appname>",
messagingSenderId: "<senderId>"
}
旧服务器 key 在我的谷歌云控制台中显示为服务器 key 。
也许这就是问题所在?我应该在初始化对象中使用 Web Api key 吗?我记得这在过去是如何工作的,所以我很困惑。
最佳答案
对我有用的重置密码的解决方法是在密码重置电子邮件链接中用新的 API key 替换旧的 API key 。
从重置密码时发送给您的密码重置电子邮件中获取链接:
并用新 key 更新它:
您可以在 Google 的控制台中找到您的 API key : https://console.cloud.google.com/home/dashboard?folder=&organizationId=&project=(PROJECT-ID)
关于单击时 Firebase 身份验证电子邮件已过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50117395/