【问题标题】:how to create expire token firebase cloud function?如何创建过期令牌firebase云功能?
【发布时间】:2020-10-14 20:24:04
【问题描述】:

我想创建并发送带有过期令牌的链接“firebase 动态链接”和 firebase 云功能:

  • 只有收到邮件的用户才能使用。
  • 令牌将在 24 小时后过期。
exports.orderDynamicLink = functions.database
  .ref("order/{orderId}")
  .onWrite((event) => {
    const options = {
      method: "POST",
      uri: `https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=${
        functions.config().applinks.key
      }`,

// 我要生成并在此处添加过期令牌

      body: {
        dynamicLinkInfo: {
          domainUriPrefix: "https://example.page.link",
          link: "https://www.example.com/",
          androidInfo: {
            androidPackageName: "com.example.android",
          },
          iosInfo: {
            iosBundleId: "com.example.ios",
          },
        },
      },
      json: true,
    };

    request(options).then(function (parsedBody) {
      console.log(parsedBody);
      sendEmailLink(parsedBody.shortLink);
      return parsedBody.shortLink;
    });
  });

function sendEmailLink(link) {
  //google account credentials used to send email
  var transporter = nodemailer.createTransport({
    host: "smtp.gmail.com",
    port: 465,
    secure: true,
    auth: {
      user: "***********@gmail.com",
      pass: "yourpassword",
    },
  });

  const mailOptions = {
    from: `***********`,
    to: snap.data().email,
    subject: "contact form message",
    html: `<h1> tou can make a Order using this link</h1>
                                <p>
                                   <b>link: </b>${link}<br>
                                </p>`,
  };

  return transporter.sendMail(mailOptions, (error, data) => {
    if (error) {
      console.log(error);
      return;
    }
    console.log("Sent!");
  });
}

我想知道如何实现:如何创建令牌,如何使其过期?怎么存放呢?以及当用户使用链接是否有效时如何验证它?具有firebase云功能。

对不起,我的英语不好。

【问题讨论】:

    标签: node.js firebase google-cloud-functions token firebase-dynamic-links


    【解决方案1】:

    您可以尝试使用Manage Session Cookies,它存储在服务器端,您可以设置自定义过期时间,从 5 分钟到 2 周。

    或者您也可以设置自定义到期逻辑,将时间戳和其他参数传递给链接 URL,然后在服务器端添加时间检查逻辑以进行验证。 thread 提供了有关如何操作的更多信息。

    【讨论】:

      猜你喜欢
      • 2019-07-19
      • 2018-06-03
      • 2018-12-07
      • 2023-03-16
      • 1970-01-01
      • 2018-08-19
      • 2022-01-14
      • 2020-11-30
      • 2020-06-03
      相关资源
      最近更新 更多