Локальное хранилище между страницами в одном домене, но с использованием разных портов

Я пытаюсь использовать локальное хранилище на разных страницах в одном домене, но по какой-то причине Firefox создает несколько экземпляров одних и тех же данных хранилища на страницах, если они используют разные порты. Так что если я поставлю что-то для www.example.com:80 это не будет сохраняться, когда собирается www.example.com:8000, это создаст совершенно новую избыточную запись тех же данных. Как я могу исправить это и заставить его использовать ту же запись?

2 ответов


порты должны быть одинаковыми для работы правил origin. Единственный способ обойти это-прокси на стороне сервера.

определение происхождения:

две страницы имеют одинаковое происхождение, если протокол, порт (если один указано), и host одинаковы для обеих страниц.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript


для передачи токенов между приложениями я прибегал к использованию cookies:

установить cookie на стороне клиента app-001

<script>( function() { document.cookie = 'token=undefined; token_expires=Fri, 3 Aug 2020 20:47:11 UTC; path=/' } )();</script>

затем использовать куки на стороне клиента app-002

<script>( function() { console.log( document.cookie.replace(/(?:(?:^|.*;s*)token*=s*([^;]*).*$)|^.*$/, '') ); } )();</script>

затем, как только у вас есть cookie в любом приложении, добавьте его в localStorage, что немного упростит доступ к движению вперед.

<script>( function() { localStorage.setItem('token', document.cookie.replace(/(?:(?:^|.*;s*)token*=s*([^;]*).*$)|^.*$/, '') );); } )();</script>