Node.js 如何创建过期令牌firebase云函数?
我想创建并发送链接“firebase动态链接”,该链接带有firebase云功能的过期令牌,该功能:Node.js 如何创建过期令牌firebase云函数?,node.js,firebase,google-cloud-functions,token,firebase-dynamic-links,Node.js,Firebase,Google Cloud Functions,Token,Firebase Dynamic Links,我想创建并发送链接“firebase动态链接”,该链接带有firebase云功能的过期令牌,该功能: 只有收到邮件的用户才能使用它 令牌将在24小时后过期 //我想在这里生成并添加过期令牌 body: { dynamicLinkInfo: { domainUriPrefix: "https://example.page.link", link: "https://www.example.com/
- 只有收到邮件的用户才能使用它
- 令牌将在24小时后过期
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!");
});
}
正文:{
DynamicClinkInfo:{
域名前缀:“https://example.page.link",
链接:“https://www.example.com/",
雄激素类:{
androidPackageName:“com.example.android”,
},
iosInfo:{
iosBundleId:“com.example.ios”,
},
},
},
是的,
};
请求(选项)。然后(函数(parsedBody){
log(parsedBody);
sendmaillink(parsedBody.shortLink);
返回parsedBody.shortLink;
});
});
函数sendEmailLink(链接){
//用于发送电子邮件的google帐户凭据
var transporter=nodeEmailer.createTransport({
主机:“smtp.gmail.com”,
港口:465,
安全:是的,
认证:{
用户:“*********@gmail.com”,
通行证:“您的密码”,
},
});
常量邮件选项={
发件人:`***************`,
发送至:snap.data().email,
主题:“联系方式信息”,
html:`tou可以使用此链接下订单
链接:${link}
`,
};
return transporter.sendMail(邮件选项,(错误,数据)=>{
如果(错误){
console.log(错误);
返回;
}
console.log(“已发送!”);
});
}
我想知道如何实现这一点:如何创建令牌,如何使其过期?如何储存?当用户使用链接时,如何验证它是否有效?具有firebase云功能
对不起,我的英语不好。您可以尝试使用,它存储在服务器端,您可以设置自定义的过期时间,从5分钟到2周不等
或者您也可以设置自定义到期逻辑,将时间戳和其他参数传递给链接URL,然后在服务器端添加时间检查逻辑以进行验证。提供了有关如何执行此操作的更多信息
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!");
});
}