我一直在考虑用更自定义的内容替换 firebase 密码重置和欢迎电子邮件中的所有链接,这样对于用户来说看起来并不糟糕(因此从 https://some-app-123f.firebaseapp.com 移动到 link.some-app.com )。
我认为最好的方法可能是使用 firebase 动态链接,因此我在其中设置了 link.some-app.com。到目前为止一切都很好。
我直接在网络界面中生成了一个新的动态链接。这基本上适用于所有人,或者说这是我的希望。我们将该链接称为 link.some-app.com/email-link。然后我将其设置为指向 https://some-app-123f.firebaseapp.com/__/auth/action 。转到第一个将我带到第二个,到目前为止一切都很好。这些链接仅打开网络,而不打开应用程序,也没有插页式页面。
我可以将电子邮件模板中的“操作 URL”替换为 link.some-app.com/email-link。当我通过电子邮件发送密码重置时,我收到一个如下所示的链接:https://link.some-app.com/email-link?mode=resetPassword&oobCode=[hash]&apiKey=[key]&lang=en
但是,当我在 Debug模式下单击此链接(在末尾添加 d=1)时,我收到一堆错误:
The format of parameter (mode) is not whitelisted for this domain.
所以我认为我可以通过在 Firebase 控制台中的链接域上使用白名单功能来解决这个问题,所以我尝试了很多不同的选项,但这是两个最宽松的选项(覆盖两个域基础,虽然我很确定我需要将目标域列入白名单,即 firebase)
^https://some-app-123f.firebaseapp.com.*$
^https://link.some-app.com/email-link.*$
我完全错过了什么吗?这是否是不可能的,因为它正在重定向回 firebase?
tl;dr:我正在尝试使用比 Firebase 开箱即用的更漂亮的 url 创建一个指向 Firebase 中密码重置功能的有效无服务器重定向链接
最佳答案
您的网址模式不正确。你还没有逃脱。
你的模式应该是
^https://some-app-123f\.firebaseapp\.com/.*$
您无需将第二个网址添加到白名单。
关于带有查询参数的 Firebase 动态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62070341/