【发布时间】:2019-09-10 03:54:55
【问题描述】:
我找不到如何使用无服务器 netlify 函数设置 CORS 的方法。 我已经使用这个函数示例来创建我自己的电子邮件表单发件人:
const nodemailer = require('nodemailer');
exports.handler = function(event, context, callback) {
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
type: 'OAuth2',
user: process.env.MAIL_LOGIN,
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
refreshToken: process.env.REFRESH_TOKEN,
accessToken: process.env.ACCESS_TOKEN
}
});
console.log(event.body);
transporter.sendMail({
from: process.env.MAIL_LOGIN,
to: process.env.MAIL_TO,
subject: process.env.SUBJECT + new Date().toLocaleString(),
text: event.body
}, function(error, info) {
if (error) {
callback(error);
} else {
callback(null, {
statusCode: 200,
body: "Ok"
});
}
});
}
但不幸的是,我可以通过每个域发送它,这并不安全,因为有些人可以将垃圾邮件发送到该收件箱。
你能跟我举个例子吗? 提前谢谢你
【问题讨论】:
-
您好!我没有使用 netlify 的经验,但你不能只在请求属性上获取请求域(引用者)并在它不是你想要允许的域时设置停止脚本的条件吗?
-
你检查了吗? github.com/netlify/…
-
谢谢你们的回答。 @GuilhermeAssemany 我一直在考虑,但是如果有人会在 POSTMAN 中伪造它呢?
-
@BarakatTurki 听起来不错,问题是我必须在另一个页面中托管我的 React 应用程序,作为一个小部件,所以我不能在 Netlify 域上托管我的应用程序
-
可能受托管域的服务器的 IP 限制?
标签: javascript node.js serverless netlify