我正在使用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);
    };


应用已经运行时,如何更新列入白名单的域?
我在数据库中有域列表,但由于性能原因每次都不想查找。

最佳答案

您可以使用express dynamic middleware并在运行时使用
 数据库表上的触发器。

10-05 20:27
查看更多