CORS с учетными данными и белым списком нескольких доменов

Я пытаюсь включить CORS, чтобы разрешить белый список нескольких доменов, загрузку изображений и использование GET для получения изображений с помощью res.sendFile.

Все они работают независимо на основе моей настройки CORS, но я не могу заставить их работать вместе.

Я использую ubuntu, nginx, nodejs.

Вот что работает для белого списка нескольких доменов и загрузки:

var whitelist = ['http://localhost:8100', 'https://somedomain.com'];
var corsOptions = {
origin: function (origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
  callback(null, true)
} else {
  callback(new Error('Not allowed by CORS'))
}
app.use(cors(corsOptions));

Но это не удается при использовании GET для получения изображений с помощью sendFile.

Использование GET для извлечения изображений работает, когда я настраиваю CORS следующим образом:

app.use(cors({credentials: true, origin: 'http://localhost:8100'}));

or

app.use(cors({credentials: true, origin: 'https://somedomain.com'}));

Но это не позволяет использовать несколько доменов.

Я попытался добавить следующее в corsOptions:

methods: 'GET,PUT,POST',
credentials: true,

Это не сработало.

Любые советы приветствуются.


person Andrew    schedule 12.05.2017    source источник


Ответы (1)


Хорошо, похоже, это работает, но я был бы признателен за любые советы о том, как лучше это сделать - если они есть.

var whitelist = ['http://localhost:8100', 'https://somedomain.com'];
app.use(cors({credentials: true, origin: whitelist }));

Спасибо.

person Andrew    schedule 12.05.2017