Я использую библиотеку expressjs. Он работает на локальном хосте: 8000 в качестве сервера, и я показываю с ним статические страницы. Мое приложение работает на локальном хосте: 4200. Я пытался использовать один и тот же файл cookie или localStorage на разных страницах портов, но это не сработало. Как я могу достичь этого?

0
Gülay Külekçi 4 Фев 2022 в 14:18

3 ответа

Я думаю, что вы пытаетесь сделать здесь, чтобы файлы cookie/локальные хранилища были разделены между двумя местами.

  1. Вам нужно 2 места? Я почти уверен, что вы можете обслуживать свое приложение на том же экспресс-сервере.
  2. Если вы используете экспресс-версию для бэкэнда (не для внешнего интерфейса), вы можете передавать необходимую информацию в своих запросах с помощью POST, GET, PATCH и т. д. Получите дополнительную информацию об отправке информации между клиентом и сервером в Google.
  3. Если оба являются интерфейсом, возможно, постарайтесь, чтобы этого не было. Если необходимо, вы можете использовать то, что я упомянул выше, для отправки информации между серверами.

Надеюсь, это каким-то образом поможет.

0
codingmaster398 4 Фев 2022 в 14:27
1. Я пытался запустить оба на localhost:4200, но это не сработало. Один из них — проект Angular, другой — статические страницы с expressjs, поэтому я не могу обмениваться данными между ними. 2. Я использую экспресс для внешнего интерфейса. 3. Хорошо, я попробую! Спасибо.
 – 
Gülay Külekçi
4 Фев 2022 в 14:43
Если это сработает, отметьте мой ответ как правильный 🤗
 – 
codingmaster398
4 Фев 2022 в 14:47

Вы можете сделать это, вызвав маршруты на localhost: 8000 только в своем основном приложении, и, поскольку оно работает на двух разных портах, вы можете столкнуться с ошибкой из-за политики Cors, и для этого вы можете посмотреть эти ответы. Корс включить

0
Satya Prakash Satyam 4 Фев 2022 в 14:28

Когда вы работаете с разными портами, если в файлах cookie для атрибута «SameSite» установлено значение «Только хост», а для домена установлено значение «localhost», они будут видны/доступны из обоих доменов независимо от номера порта.

Как говорит @codingmaster, если это разные домены, вам придется реализовать управление cors для разных доменов.

Но поскольку вы владеете обоими приложениями, во время производства одно может находиться в основном домене, а другое — в поддомене, тогда вам нужно будет установить атрибут domain файла cookie для вашего домена, например: example.com и атрибут SameSite могут оставаться HostOnly, а файлы cookie будут доступны

0
Cypherjac 4 Фев 2022 в 14:34
1
Однако это не будет хорошо работать в производственной среде, поскольку я предполагаю, что это будут настоящие домены. Вы можете использовать сторонние файлы cookie, но у некоторых людей они заблокированы (в некоторых браузерах по умолчанию).
 – 
codingmaster398
4 Фев 2022 в 14:28