Я работаю над Safari версии 13. В [Настройки> Конфиденциальность] есть опция «Запретить межсайтовое отслеживание»
Когда эта опция включена, она будет запрещать межсайтовое отслеживание в качестве своего имени. подразумевается, чтобы защитить конфиденциальность пользователя.
Однако, кажется, что локальное хранилище в разных поддоменах также не может быть общим.
Например, здесь есть два поддоменов, которые являются «auth» и «app»
auth.dev.domain.ab c -> поддомен для авторизации. app.dev.domain.ab c -> поддомен для основного приложения.
Сначала пользователь войдет в систему с именем "auth.dev.domain.ab c", как только пользователь войдет в систему. в случае успешного завершения, он установит токен в локальном хранилище и перенаправит на app.dev.domain.ab c
В случае, если «Запретить межсайтовое отслеживание» отключено
- Зарегистрировавшись в "auth.dev.domain.ab c", accessToken устанавливается в локальном хранилище
- Перенаправить на app.dev.domain.ab c
- в настоящее время на app.dev.domain.ab c
- При просмотре Local Storage в сафари с помощью [Develop> Показать веб-инспектор> Storage] В разделе Local Storage мы может см. AccessToken в auth.dev.domain.ab c
В случае, если "Запретить межсайтовое отслеживание" включено
- Зайдя на сайт "auth.dev.domain.ab c", accessToken устанавливается в локальном хранилище
- Перенаправить на app.dev.domain.ab c
- в настоящее время в app.dev .domain.ab c
- При просмотре Local Storage в сафари с помощью [Develop> Show web inspector> Storage] В разделе Local Storage мы не можем видеть accessToken в аутентификации .dev.domain.ab c
Я не знаю, как решить эту проблему, похоже, что Safari рассматривал другой поддомен как «межсайтовый»
Что лучший способ обойти эту проблему?
- Я пытался использовать iframe из app.dev.domain.ab c для auth.dev.domain.ab c, но это Кажется, что auth.dev.domain.ab c в iframe также не имеет значения accessToken в локальном хранилище.
- Должен ли я отправлять accessToken как и параметр в URL при перенаправлении из "auth.dev.domain .ab c "to" app.dev.domain.ab c "и вручную установить локальное хранилище в" app.dev.domain.ab c "?
Есть ли еще решение, которое может заставить его работать на этом?