【问题标题】:Use multiple domains for Firebase password reset使用多个域进行 Firebase 密码重置
【发布时间】:2021-10-31 07:25:28
【问题描述】:

我还没有想出一种方法来自定义密码重置电子邮件的身份验证域。这很重要,因为我已经构建了一个自定义密码重置页面,并且需要首先在 localhost 中对其进行测试,然后在部署后在生产中进行测试。我正在使用用 Python 编写的云函数使用以下代码发送密码重置电子邮件:

def send_password_reset_email(request):
    if request.method == "OPTIONS":
        return handle_preflight_request()
    
    data = request.json["data"]
    reset_mode = data["reset_mode"]
    user_email = data["user_email"]
    base_url = data["base_url"]

    settings = auth.ActionCodeSettings(url=base_url)
    reset_link = auth.generate_password_reset_link(
        email=user_email, action_code_settings=settings, app=firebase_app
    )

即使我为base_url 传递不同的网址,也会生成相同的重置链接。如何根据我是在 localhost/development 还是在生产环境中创建不同的重置链接?

【问题讨论】:

    标签: python firebase firebase-authentication google-cloud-functions


    【解决方案1】:

    根据documentation,提到

    “默认情况下,用户管理电子邮件链接到默认操作 处理程序,它是托管在项目的 URL 中的网页 Firebase 托管域”。

    根据您的功能和用例,有 4 种不同的方法可以自定义密码重置电子邮件的身份验证域:

    1. 通过自定义域和 操作链接 URL 未将电子邮件操作处理程序代码实现为 根据这个stackoverflow thread

    在 Firebase 控制台中:

    • 转到动态链接
    • 通过输入您的自定义域 YOURDOMAIN.com 添加 URL 前缀。没必要 要实际添加动态链接,仅此条目就足够了。
    • 转到Authentication > Template > Edit (Pencil) > Customize Action URL
    • 根据此模式输入您的自定义域 - https://YOURDOMAIN.com/__/auth/action
    1. 你可以create a Firebase Dynamic link of your custom domain .After 创建 Firebase 动态链接,转到 Authentication/Templates on Firebase,然后单击操作链接的自定义 URL 并输入 动态链接。您的默认操作 URL 链接将被更改。

    2. 你可以create and host a custom email action handler做自定义 处理并将电子邮件操作处理程序与您的 网站。然后,您必须自定义 Firebase 项目的电子邮件模板 到link to your custom action handler

    3. specify a sender address with a custom domain and use your own server to handle account management emails,指定你服务器的URL 遵循 Firebase 支持文章的帐户管理页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      • 2013-01-14
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      相关资源
      最近更新 更多