У меня есть простая веб-страница, которая использует клиентские скрипты для хранения нескольких пользовательских настроек в локальном хранилище браузера.(Статус флажков, развернутых / свернутых меню и т. Д.)
У меня есть кнопка Patreon на моей веб-странице.Когда пользователь щелкает его, браузер пользователя переходит на страницу аутентификации Patreon и, если пользователь нажимает кнопку, чтобы предоставить мне доступ к своему статусу поддержки пользователей, Patreon перенаправляет свой браузер на маршрут на моем сайте, где я записываю его статус поддержки изатем перенаправьте их обратно на мою домашнюю страницу.
Когда пользователь наконец возвращается на мою домашнюю страницу, все данные локального хранилища пользователя отсутствуют.Если пользователь нажимает Обновить после возврата на мой сайт, локальное хранилище по-прежнему отсутствует.Однако, если они закроют вкладку и откроют мой сайт на новой вкладке (или перейдут на другой сайт и затем вернутся назад на той же вкладке), исходные значения локального хранилища снова будут видны.
Я понимаю, что браузерлокальное хранилище связано с источником локального хранилища.https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
Я подтвердил, что и протокол (https), и домен идентичны для точки, в которой установлено хранилище, и точки, когда пользователь возвращается на мой сайт.Я также подтвердил, что окончательный маршрут посадки идентичен.
домашняя страница, на которой изначально установлены локальные значения хранилища: https://www.example.com/page1
конечная целевая страница: https://www.example.com/page1
Я заметил, что если я остановлю пользователя на маршруте перенаправления Patreon (куда первоначально перенаправляется Patreon)пользователи и где я записываю статус поддержки пользователей), при открытии отладчика браузера и выдаче document.domain
выдается: ""
Однако настройка document.domain и обновление не восстанавливают локальное хранилище.
Я наблюдаю такое поведение как в Firefox 63.0.3 (64-разрядная версия), так и в Chrome 71.0.3578.80 (64-разрядная версия).
Есть идеи, чего мне не хватает?
[ПРАВИТЬ] Вот код, который я использую для записи состояния пользователя в локальное хранилище:
if(localStorage.userOptions){ restoreOptsFromLocal(); }
else{ persistOptsToLocal(); }
...
restoreOptsFromLocal = function(){
opts = JSON.parse(localStorage.getItem('userOptions'));
}
persistOptsToLocal = function(){
localStorage.setItem('userOptions', JSON.stringify(opts));
}