[英]Firebase authentication email customisation
我在我的应用程序中使用 firebase 身份验证,我正在设置无密码 email 注册。
我已经成功地从我自己的域设置了 email,但是如何更改在 email 中发送的文本以获取魔术链接? 我可以看到其他模板电子邮件的配置,但看不到这一个。
有问题的 email 是这个:
Hello,
We received a request to sign in to teamname using this email address. If you want to sign in with your youremail account, click this link: link
If you did not request this link, you can safely ignore this email.
Thanks,
无法编辑电子邮件模板。 这样做的原因是,这允许不良行为者使用 Firebase 向人们发送垃圾邮件,这会使服务面临风险。
要控制发送的消息,您必须自己发送并使用自定义电子邮件操作处理程序处理验证流程。 请参阅如何修改电子邮件确认消息 - Firebase 。
您还可以完全控制验证流程,然后使用Admin SDK 设置用户个人资料的emailVerified
标志。
按照 Frank 的回答,您必须使用Firebase Admin SDK创建自己的电子邮件操作链接,然后将该链接放入您的自定义电子邮件中,然后您将使用任何服务(Sendgrid、Mailgun 等)发送该链接。
在此处查看如何创建操作链接: 生成电子邮件操作链接
使用Firebase认证服务时,有两种方法可以自定义email body。 但是,缺点是您必须创建一个后端来自己发送 email,而不是仅使用自动处理所有内容的 SDK 中的 function。
生成 email 操作链接:这是最有效的方法,它需要您使用 Firebase 管理员 SDK 生成一个链接,该链接将嵌入到发送给您的用户的电子邮件中。 下面是一个示例代码,展示了如何创建一个 API 以使用 Express 作为后端来发送定制的验证电子邮件:
// Creating a POST route that sends customized verification emails app.post('/send-custom-verification-email', async (req, res) => { const {userEmail, redirectUrl} = req.body const actionCodeSettings = { url: redirectUrl } try{ // generate action like with the Firebase Admin SDK const actionLink = await getAuth().generateEmailVerificationLink(userEmail, actionCodeSettings) // embedding action link to customized verification email template const template = await ejs.renderFile('views/verify-email.ejs', { actionLink }) // send verification email using SendGrid, Nodemailer, etc. await sendVerificationEmail(userEmail, template, actionLink) res.status(200).json({message:'Email successfully sent'}) }catch(error){ // handle errors } })
您可以在我在这里写的文章中阅读更多相关信息
完全控制工作流程:有了这个,Firebase Admin SDK 将不会用于生成操作链接,而是您自己生成链接并创建一个 API,它使用 Admin SDK 来处理要采取的操作每当单击链接时。
为此,您必须创建两条 API 路由。 一个是发送电子邮件的路由,另一个是使用 Firebase Admin SDK 处理点击 email 所附链接时要采取的操作的路由。
自定义电子邮件正文的唯一方法是安装名为Trigger Email 的Firebase 扩展程序,但它会将您置于 Blaze 计划中,因为它会向第三方 API 发出请求,并且正如它们在扩展程序页面上指定的那样,您只需支付费用对于超过 Firebase 免费套餐的使用量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.