点击验证链接后,Firebase 将用户重定向到页面

Usr*_*Usr 12 javascript web-applications firebase ionic-framework

我在带有 Ionic 的网络应用程序中使用 firebase,并且我想在用户单击验证电子邮件中的链接后将其重定向到特定页面(在我的情况下为登录页面)。
目前,当用户点击验证链接时,他被重定向到另一个浏览器页面,显示他已确认电子邮件。

在此处输入图片说明

我想将他直接重定向到我的网络应用程序的页面,而无需通过该确认。
有可能这样做吗?

Ras*_*dre 13

是的,这是可能的。在左侧的 firebase.console 中查找“身份验证”。然后找到“模板”并查找“电子邮件地址验证”。我认为它是默认打开的。在模板上你会看到一支小铅笔,点击它。之后,您可以根据需要更改模板。在底部,您会找到“自定义操作 URL”链接。打开此链接,将您的 URL 粘贴到模式窗口中并保存。就是这样。

第一步

最后一步

  • @R.Rasco 在这种情况下,我是否必须手动验证用户的电子邮件。似乎是这样。我认为人们正在寻找一种解决方案,让 firebase 自动验证电子邮件,然后重定向到其应用程序的页面 (7认同)

小智 8

我无法在这里找到任何可行的解决方案。因此,在查找文档后,我发现您在电子邮件验证后添加了一个继续 URL,Firebase 在确认后将重定向到该继续 URL。 https://firebase.google.com/docs/auth/web/passing-state-in-email-actions

验证电子邮件后,如果您email_verified在 Firebase 规则中使用,您可能还必须强制刷新 Firebase 令牌。

你可以做我所做的。

  1. 传递ActionCodeSettings给 sendEmailVerification。
  auth.createUserWithEmailAndPassword(email, password)
  .then((res) => {
    res.user.sendEmailVerification({
      url: "https://example.com/path?confirm_email=true",
    });
    return createUser({ email, uid: res.user.uid, name });
  })
Run Code Online (Sandbox Code Playgroud)

这将使 firebasehttps://example.com/path?confirm_email=true在电子邮件验证后重定向。这confirm_email是为了让我知道何时强制刷新 firebase 令牌。

(选修的)

  1. 重定向到您想要的页面后,您可以检查确认电子邮件参数并相应地强制刷新令牌。
const urlParams = new URLSearchParams(window.location.search);
const isConfirmingEmail = urlParams.get('confirm_email');


auth.currentUser.getIdToken(!!isConfirmingEmail).then(() => {
  // Refreshed Token
})
Run Code Online (Sandbox Code Playgroud)