TLDR: для этого действительно нет идеального решения.
Сказав это, есть несколько подходов, которые вы можете использовать.
Использование обратного прокси
Как предложил @David, используйте обратный прокси-сервер, такой как Nginx или HAPorxy, для обслуживания обоих приложений из одного домена - protocol://host:port
.Все три вещи должны быть равны.
Использование куки вместо LocalStorage
Если вы используете куки вместо LocalStorage
, то порты хоста не участвуют в определении политики сайта.Таким образом, два приложения, работающие на одном хосте, но с другим портом, будут совместно использовать cookie без какой-либо дополнительной работы.Чтобы защитить cookie, используйте cookie только для HTTP, cookie того же сайта.
Использование URL для общего доступа - только IFrame
Если вы используете iFrame, то вы можете использовать URL для совместного использованиямаркер.Когда внешнее окно загружает iFrame, отправьте эту информацию с помощью хеша, например http://localhost:8081/somepage#token=1234
Использование хеша позволит странице отправлять данные на внутреннюю страницу без отправки по проводам.
Используя window.postMessage - только IFrame
Используя window.postMessage
, вы можете просто передать необходимые данные во внутреннее окно / iFrame.Пока вы контролируете обе конечные точки, вы можете легко выполнять междоменную отправку сообщений.
В конце концов, это действительно зависит от ваших требований безопасности, простоты обслуживания и т. Д.