У меня есть приложение на nodejs, которое будет служить прокси для подключения к различным социальным платформам. Процесс выглядит следующим образом:
- Нажмите на кнопку, откройте новое окно
- Прежде чем закрыть окно, добавьте токен доступа в Cook ie (пока приложение включено localhost, поэтому токен находится в этом домене) в качестве одноразового номера и добавьте его в базу данных.
- Как только модальное окно закроется, go к другой конечной точке, которая будет принимать этот одноразовый номер из cook ie, выполнить поиск в базе данных и верните токен.
Вот проблема, после отправки запроса AJAX для шага 3 возникает проблема CORS. Это код:
jQuery.ajax({
url: "http://localhost:9057/facebook/gettoken",
type: 'GET',
dataType: "json",
xhrFields: {
// -->> In order to access the cookie, we have to have this set as true.
withCredentials: true
},
crossDomain: true,
success: function (res) {
console.log(res);
}
});
В моем приложении NodeJS я установил cors:
if (config.getOption('PORT')) {
const corsOptions = {
credentials: true
};
app.use(cors(corsOptions));
// -->> I cannot have * here here, withCredentials cannot be set to true and have *, see the error below
app.options('*', cors(corsOptions));
}
Это ошибка:
Доступ к XMLHttpRequest по адресу 'http://localhost: 9057 / facebook / gettoken ' из источника 'http://something.test: 8080 ' был заблокирован политикой CORS: значение параметра "Доступ" Заголовок -Control-Allow-Origin 'в ответе не должен быть подстановочным знаком' * ', если режим учетных данных запроса -' include '. Режим учетных данных запросов, инициированных XMLHttpRequest, контролируется атрибутом withCredentials.
Я не могу внести в белый список домены, которые 'http://something.test:8080'
представляет, поскольку они будут пользовательскими веб-сайтами.
Кто-нибудь знает Обходной путь, если он есть?