单击验证链接后,Firebase会将用户重定向到某个页面

时间:2017-11-16 12:01:14

标签: javascript firebase ionic-framework web-applications

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

enter image description here

我想将他直接重定向到我的网络应用的页面,而不通过该确认 有可能吗?

3 个答案:

答案 0 :(得分:3)

是的,这是可能的。查看左侧的firebase.console,了解"身份验证"。 然后找到"模板"并寻找"电子邮件地址验证"。我认为它的默认开启了。在模板上,您将看到一个pensil,单击此按钮。之后,您可以根据需要更改模板。在底部,您将找到链接"自定义操作URL"。打开此链接,将您的URL粘贴到模态窗口中并保存。那就是它。

First Steps

Last Steps

答案 1 :(得分:2)

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

在验证电子邮件后,如果您在 firebase 规则中使用 email_verified,您可能还必须强制刷新 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 });
  })

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

(可选)

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


auth.currentUser.getIdToken(!!isConfirmingEmail).then(() => {
  // Refreshed Token
})

答案 2 :(得分:0)

不幸的是,您不能让 Firebase 进行身份验证然后重定向。目前接受的答案是一半。通过进入“Firebase -> Authentication -> Templates -> Email Address Verification -> Edit (aka. Pencil button)”。然后,您可以点击“自定义操作网址”并在此处插入您想要的任何网址。

请注意在执行电子邮件验证后,您输入的此 URL 不会将您重定向到该页面。它会做的不是生成链接 <firebase email verification link>?mode=verifyEmail&oobCode=<code>,而是将您定向到 <link you put in>?mode=verifyEmail&oobCode=<code>。这意味着当用户登陆此页面时,您必须自己处理电子邮件验证。这意味着解析查询参数,并将此信息发送到后端的 Firebase 以验证相关电子邮件。有关如何验证电子邮件地址的可能性,请参阅以下内容:https://firebase.google.com/docs/reference/rest/auth#section-confirm-email-verification

可以在此处找到有关此的更多信息:https://support.google.com/firebase/answer/7000714