【发布时间】:2020-01-08 04:24:54
【问题描述】:
我在 nginx 下运行带有白名单前端域列表的节点应用程序。允许的域在 .env 文件中定义。
app.js:
app.use(cors());
cors.js:
const cors = require('cors');
const whitelist = process.env.CORS_DOMAINS.split(',');
module.exports = (enabled = true) =>
(req, res, next) => {
const options = {
origin(origin, callback) {
if (!origin) {
callback(null, true);
return;
}
const originIsWhitelisted = enabled ? whitelist.indexOf(origin) !== -1 : true;
if (originIsWhitelisted) {
console.log('cors runs');
callback(null, originIsWhitelisted);
return;
}
callback({
statusCode: 401,
error: 'Not allowed',
});
},
};
return cors(options)(req, res, next);
};
当应用程序已在运行时,如何更新列入白名单的域? 我在数据库中有域列表,但由于性能原因不想每次都查找。
【问题讨论】: