当前位置: 首页 > 知识库问答 >
问题:

自定义Firebase电子邮件验证模板和操作处理程序

诸葛乐逸
2023-03-14

我想自定义电子邮件模板(使用触发电子邮件扩展模板)以向用户发送验证链接。

我知道不可能从Firebase控制台更改模板,因为它可以防止垃圾邮件。

我知道可以自定义操作电子邮件处理程序(单击验证电子邮件中的链接时用户登录的页面),以及手动更新验证用户的<code>emailVerified<code>属性的能力。

有没有一种方法可以生成firebase会使用的验证链接?一个具有以下属性:

    < li >模式 < li>oobCode < li>apiKey < li >继续 郎

我理想的解决方案是在使用生成的验证链接注册时向用户发送自定义模板。将用户定向到自定义处理程序页面,并使用 Docs 中所示的 applyActionCode() 函数来验证电子邮件(我希望这会隐式更新 Auth.User 记录上的 emailVerified 属性。

共有1个答案

翟嘉年
2023-03-14

我通过创建用户并使用AdminSDK在后端生成链接来实现这一点。

因此,您的前端将调用可调用的函数或定制的APIendpoint,例如用于注册,而不是直接使用SDK。

callable将这样做:

  • 在Auth:Auth中创建用户。createUser()
  • 在数据库中创建用户(Firestore、Mongo等)
  • 根据需要分配自定义声明:<code>auth。setCustomUserClaims
  • 正在为signin:auth构建链接。GeneratesInWithEmailLink()
  • 将电子邮件发送到电子邮件事务API

您将需要一个ESP,例如Sendgrid、MailChimp、MailGun等。最后一步。在那里你可以自由地创建自己的模板。

请注意,generateSignInWithEmailLink将负责验证电子邮件地址和登录。因此,它可以用于登录和注册。

干杯

 类似资料:
  • 我正在研究AWS Cognito,下面是关于消息定制的两个问题。 1) 我正在使用“链接”验证类型为“电子邮件验证消息”编写AWS Cognito。我遇到了一个问题,“电子邮件消息”使其动态。 2)如何根据用户组或有条件地发送不同的“电子邮件消息”内容? 请建议。 谢啦

  • 我是Firebase的新手。我需要一种在注册过程中验证电子邮件地址的方法。未经验证,用户不应该自动登录。我可以添加什么代码来检查电子邮件是否经过验证。如果是,用户可以登录。如果不是,他们需要首先登录。请参阅下面的代码

  • 重定向url的长度显得很长。看起来像是在重演。 https://app.page.link?link=https://app.firebaseapp.com//auth/action?apikey%3xxx%26mode%3dverifyemail%26oobcode%3xxx%26continueurl%3dhttps://www.app.com/?verifyemail%253demail@g

  • 我有一个关于firebase电子邮件验证工作的问题。 案例: 我的用户已登录我的网站(使用设备A)。 他们使用其他浏览器或设备(设备B)创建另一个帐户,但他们使用他已登录的浏览器和设备(设备A)打开电子邮件验证链接。 已经登录的用户(在设备A中)发生了什么?firebase是将它们签出还是只是验证新的电子邮件,但仍然与当前用户签入?

  • 我的电子邮件验证有问题。我的错误是“用户为空”,因此它不会发送验证电子邮件,但会在控制台和My console.firebase.google中显示登录uid。com项目显示已注册的电子邮件。我应该更改什么,以便发送电子邮件,并且在用户验证其电子邮件之前不允许访问?我读过文件,但想不出来。提前谢谢你。