Подключение localhost к удаленному серверу разработки (CORS, тот же сайт, безопасность и другие проблемы) - PullRequest
0 голосов
/ 06 августа 2020

Я сейчас работаю над проектом React. Сервер разработки (Bottle / Python) для проекта размещен удаленно, а мой сервер разработки React - localhost. Часть процесса аутентификации для приложения включает в себя установку cook ie при входе в систему, но из-за правил безопасности для одного и того же сайта, cook ie не устанавливается, что означает, что мой интерфейс разработчика не может получить доступ к каким-либо данным. что ему нужно.

Я и инженер сервера добавили SameSite = None в cook ie, а также в secure, но поскольку мой локальный хост не https, cook ie все еще не сохраняется должным образом ( Я получаю сообщение об ошибке «этот Set-Cook ie» был заблокирован, потому что имел атрибут «Secure», но не был получен через безопасное соединение »).

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

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

Нужно ли мне:

  1. Нужно как-то сделать мой локальный хост https?
  2. Нужно сделать домен dev-сервера https?
  3. Нужно установить сервер локально, потому что это просто невозможно сделать?

Извините, если это новичок, было бы здорово получить совет. Большое спасибо.

1 Ответ

0 голосов
/ 07 августа 2020

Короткий ответ:

  1. Нет
  2. Да
  3. Нет

Вы можете запустить приложение на http://localhost : порт. Предполагая, что ответ от вашего сервера разработки содержит заголовки Set-Cook ie of the cook ie с флагом Secure, URL-адрес вашего сервера разработки должен быть https, чтобы Cook ie был принят браузером.

У меня есть эта настройка, и она работает очень хорошо.

Что касается CORS (как указано в заголовке вопроса): у вас должен быть настроен сервер для приема учетных данных и настроены разрешенные источники . Клиентское приложение при выполнении запроса XHR должно иметь withCredentials: true. Подробнее см. Пункты 2 и 3 в моем сообщении .

Также обратите внимание, что если вы используете Chrome, вы можете обойти в целях разработки требование иметь SameSite = None и Secure сняв флажок «Файлы cookie без SameSite должны быть безопасными», также подробно описанный здесь

...