我在Ionic的网络应用程序中使用了firebase,我想在点击验证邮件中的链接后将用户重定向到特定页面(在我的情况下是登录页面)。 目前,当用户点击验证链接时,他会被重定向到另一个浏览器页面,该页面上显示他已确认该电子邮件。
我想将他直接重定向到我的网络应用的页面,而不通过该确认 有可能吗?
答案 0 :(得分:3)
是的,这是可能的。查看左侧的firebase.console,了解"身份验证"。 然后找到"模板"并寻找"电子邮件地址验证"。我认为它的默认开启了。在模板上,您将看到一个pensil,单击此按钮。之后,您可以根据需要更改模板。在底部,您将找到链接"自定义操作URL"。打开此链接,将您的URL粘贴到模态窗口中并保存。那就是它。
答案 1 :(得分:2)
我无法在这里找到任何解决方案。因此,在查找文档后,我发现您在电子邮件验证后添加了一个继续 URL,firebase 在确认后将重定向到该 URL。 https://firebase.google.com/docs/auth/web/passing-state-in-email-actions
在验证电子邮件后,如果您在 firebase 规则中使用 email_verified
,您可能还必须强制刷新 firebase 令牌。
你可以做我所做的。
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=true
。 confirm_email
使我知道何时强制刷新 firebase 令牌。
(可选)
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