Javascript Firebase电子邮件链接验证会导致出现一个页面,上面写着;遇到错误";-&引用;所选页面模式无效";
我使用Firebase auth(Firebase v7.23.0)在本地主机上。电子邮件发送正常。我单击电子邮件中的登录链接。我在my.firebaseapp.com上获得此错误页面 我的代码主要在下面,但这一切都是可行的。Firebase页面出现错误。我不确定我还需要设置什么。localhost位于允许的域上。错误在Firebase端,因此我无法对其进行调试或修复Javascript Firebase电子邮件链接验证会导致出现一个页面,上面写着;遇到错误";-&引用;所选页面模式无效";,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,我使用Firebase auth(Firebase v7.23.0)在本地主机上。电子邮件发送正常。我单击电子邮件中的登录链接。我在my.firebaseapp.com上获得此错误页面 我的代码主要在下面,但这一切都是可行的。Firebase页面出现错误。我不确定我还需要设置什么。localhost位于允许的域上。错误在Firebase端,因此我无法对其进行调试或修复 const actionCodeSettings = { // URL you want to redirect back
const actionCodeSettings = {
// URL you want to redirect back to. The domain (www.example.com) for this
// URL must be whitelisted in the Firebase Console.
// url: `${window.location.protocol}//${window.location.host}/`,
url: http://localhost:7000/#postLogin,
// This must be true.
handleCodeInApp: true
};
firebase.auth().sendSignInLinkToEmail(this.email, actionCodeSettings)
.then(() => {
// The link was successfully sent. Inform the user.
// Save the email locally so you don't need to ask the user for it again.
window.localStorage.setItem('email', this.email);
})
.catch(error => {
// Some error occurred, you can inspect the code: error.code
});
}
当用户点击电子邮件链接时,他们会登陆到一个页面上。比如说
/register/complete
因此,您应该具有以下代码才能使其工作:
const actionCodeSettings = {
url: `http://localhost:3000/register/complete,
handleCodeInApp: true
};
您的问题可能存在于以下url中:
url: `${window.location.protocol}//${window.location.host}/`,
当用户点击电子邮件链接时,他们会登陆到一个页面上。比如说
/register/complete
因此,您应该具有以下代码才能使其工作:
const actionCodeSettings = {
url: `http://localhost:3000/register/complete,
handleCodeInApp: true
};
您的问题可能存在于以下url中:
url: `${window.location.protocol}//${window.location.host}/`,
我不知道你是如何得到这个网址的。您从url中删除了apiKey以附加屏幕截图,或者您错误配置了某些内容,导致apiKey未包含在电子邮件验证链接中 为了验证我的假设,我创建了一个新的firebase应用程序,并将其部署到一个只有“发送电子邮件链接”按钮的应用程序中,该按钮将电子邮件发送给我自己,如果我单击电子邮件中收到的验证链接,电子邮件链接就会工作仅当我从电子邮件中的链接中删除apiKey时,它才起作用 您的电子邮件链接应为:
https://test-auth-79dae.firebaseapp.com/__/auth/action?apiKey={yourApiKey}&oobCode={obbCode}&continueUrl={urlParameter}&lang=en
我不确定您是如何获得此url的。您从url中删除了apiKey以附加屏幕截图,或者您错误配置了某些内容,导致apiKey未包含在电子邮件验证链接中
为了验证我的假设,我创建了一个新的firebase应用程序,并将其部署到一个只有“发送电子邮件链接”按钮的应用程序中,该按钮将电子邮件发送给我自己,如果我单击电子邮件中收到的验证链接,电子邮件链接就会工作仅当我从电子邮件中的链接中删除apiKey时,它才起作用
您的电子邮件链接应为:
https://test-auth-79dae.firebaseapp.com/__/auth/action?apiKey={yourApiKey}&oobCode={obbCode}&continueUrl={urlParameter}&lang=en
这个问题应该解决,这是Firebase端的问题。我也有同样的问题,通过他们的联系支持,他们向我保证这是他们的问题。问题应该得到解决,这是Firebase方面的问题。我也有同样的问题,通过他们的联系支持,他们向我保证这是他们的问题。谢谢!我试图硬编码的网址,但仍然有问题。无论是否硬编码,登录链接中的continueUrl都是相同的:“…continueUrl=…”您的url中不应该有%。我看到你有两个/
。删除一个/
,它应该可以工作。请确保url中没有多余字符或空白。谢谢!我试图硬编码的网址,但仍然有问题。无论是否硬编码,登录链接中的continueUrl都是相同的:“…continueUrl=…”您的url中不应该有%。我看到你有两个/
。删除一个/
,它应该可以工作。请确保url中没有多余字符或空白。谢谢。是的,由于某种原因API没有被传入。我确实用initializeApp配置了它,其他一切都可以正常工作<代码>firebase.initializeApp({apiKey:'abc123'})。我将检查API密钥为什么没有显示在电子邮件的URL中。检查您的电子邮件模板可能会在那里找到一些内容。我还没有时间查看,但URL中缺少的API密钥是100%的线索。另一个答案是一个有希望的线索(URL中的标签)。我现在要给这个人悬赏。谢谢大家!@事实上,我在电子邮件中尝试了url中的哈希标记,这不是问题,仅供参考。谢谢。是的,由于某种原因API没有被传入。我确实用initializeApp配置了它,其他一切都可以正常工作<代码>firebase.initializeApp({apiKey:'abc123'})。我将检查API密钥为什么没有显示在电子邮件的URL中。检查您的电子邮件模板可能会在那里找到一些内容。我还没有时间查看,但URL中缺少的API密钥是100%的线索。另一个答案是一个有希望的线索(URL中的标签)。我现在要给这个人悬赏。谢谢大家!@事实上,我在电子邮件的url中尝试了哈希标记,这不是问题,仅供参考。