яичный набор междоменных белый список

Egg.js
Я чистый фронтенд, только что вошел в яму для яиц на месяц, nodejs Xiaobai, благодаря элегантности и силе яйца, проект компании продвигается очень гладко. Мой личный опыт с яйцом такой же, как и vue (бедные слова), простой и красивый.

междоменная проблема

При написании сервера неизбежно приходится учитывать междоменные вопросы.Плагин egg-cors предоставляет конфигурацию origin, что обеспечивает удобство для всех.

яйцо-корс включен:


конфигурация яичного кора:


Это наиболее часто используемый плагин для решения междоменных проблем.

Однако в моем реальном проекте некоторые требования не могут быть выполнены, поэтому я думаю, что у egg-cors есть определенные ограничения в конфигурации.

  1. Параметр origin может задавать только доменное имя или '*', если вы хотите вести белый список, боюсь, он не поддерживается;
  2. Если задано значение ' * ', чтобы разрешить междоменное использование всех доменных имен, если запрос имеет параметр withCredentials: true, междоменная проблема остается.

Для того, чтобы решить вышеперечисленные проблемы, я решил сам создать плагин egg-origin. Это промежуточное программное обеспечение, и код очень прост.


Правильно, выше весь код 😅😅

Принцип: При поступлении каждого запроса получать его источник, если он есть в настроенном белом списке, установить вручную this.ctx.response.set('Access-Control-Allow-Origin', origin); таким образом можно настроить кросс- белый список доменов в соответствии с вашими потребностями.

Инструкции:

Используйте то же, что и яйца

яйцо-происхождение включено:


конфигурация яичного происхождения:


Здесь параметру whiteList может быть присвоено имя домена или он может быть напрямую установлен в [' * '], который должен быть массивом, а также для сохранения той же привычки настройки, что и у egg-cors.


Этот плагин на самом деле зависит от egg-cors, я добавил конфигурацию egg-cors в конфигурацию по умолчанию.


Белый список, установленный egg-origin, переопределит конфигурацию egg-cors. Только стоя на плечах великанов можно увидеть дальше, благодаря великанам.

Дальнейший план итерации

В настоящее время он поддерживает только режим точного соответствия.Последующий план итерации включает настройку доменного имени первого уровня, всех имен поддоменов и добавление конфигурации [черный список] для фильтрации некоторых доменных имен.

Если вы найдете это полезным, пожалуйста, дайте звездочку 👍👍GitHub.com/TEmould OL/яйцо-…