Динамически разрешать домены для CORS - PullRequest
1 голос
/ 07 января 2020

Я запускаю приложение узла со списком белых доменов в списке 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);
    };

Как я могу обновить домены из белого списка, когда приложение уже запущено? У меня есть список доменов в базе данных, но я не хочу искать каждый раз из-за производительности.

1 Ответ

2 голосов
/ 07 января 2020

Вы можете использовать express dynamici c middleware и использовать его во время выполнения с триггером для таблицы базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...