Firebase:如何通过从nodemailer发送的电子邮件模板发送重置链接?

时间:2019-01-30 11:01:52

标签: javascript node.js firebase

  

我实现了通过nodemailer发送电子邮件。

     

现在,当我创建新用户时,该新用户会收到“欢迎电子邮件”。

     

问题是“欢迎电子邮件”应包含以下选项:   重置密码。

     

如何在nodemailer电子邮件模板中添加 Firebase重置链接

  • 这是我的nodemailer的电子邮件模板代码

    const output = `
     <p>You have access to the Church Mutual Assignment Tool.</p>
     <p>Follow this link to create new password for your account ${userRecord.email}:</p>
       <a href="${resetPasswordLink}">
         ${resetPasswordLink}
       </a>
       <p>Thanks,</p>
       <p>Your Church Mutual Assignment Tool team</p>
     `
     let message = {
       from: 'nyik6nntutmq3vz6@ethereal.email',
       to: `${user.email}`,
       subject: 'Welcome to the Church Mutual Assignment Tool',
       text: 'Plaintext version of the message',
       html: output
     }
    
  • 这是我的Nodemailer代码:

      var mailer = require('nodemailer')
      var mailConfig = {
      host: 'smtp.ethereal.email',
      port: 587,
      auth: {
        user: 'nyik6nntutmq3vz6@ethereal.email',
        pass: '3cbRjkZdPquDqA725s'
      }
    }
    
    var transporter = mailer.createTransport(mailConfig)
    
    module.exports = transporter
    

1 个答案:

答案 0 :(得分:1)

Admin SDK现在具有一些方法,使您可以执行此操作。在email action links上查看文档,特别是“ 生成密码重置电子邮件链接”部分。

// Admin SDK API to generate the password reset link.
const email = 'user@example.com';
admin.auth().generatePasswordResetLink(email, actionCodeSettings)
    .then((link) => {
        // Do stuff with link here
    })
    .catch((error) => {
        // Some error occurred.
    });

全面披露-我实际上没有使用过任何这些功能,而且我有点担心所涉及的页面在很大程度上涉及移动应用程序-因此您可能必须通过它移动应用程序配置。

const actionCodeSettings = {
    // URL you want to redirect back to. The domain (www.example.com) for
    // this URL must be whitelisted in the Firebase Console.
    url: 'https://www.example.com/checkout?cartId=1234',
    // This must be true for email link sign-in.
    handleCodeInApp: true,
    iOS: {
        bundleId: 'com.example.ios'
    },
    android: {
        packageName: 'com.example.android',
        installApp: true,
        minimumVersion: '12'
    },
    // FDL custom domain.
    dynamicLinkDomain: 'coolapp.page.link'
};

另一方面,页面还说这些功能提供了以下功能:

  

能够通过手机自定义链接的打开方式   应用程序或浏览器,以及如何传递其他状态信息等。

这听起来很有希望,允许它在浏览器中打开...但是,如果您是为Web开发的,并且在未提供iOS / Android信息时出现了功能错误...那么,恐怕您必须完成old fashioned approach并创建您自己的实现...但是我倾向于.generatePasswordResetLink应该对您有用。