Версия CS-Cart: 4.20.1 (Мультивендор)
Браузер: Яндекс.Браузер (мобильная версия для Android).
Другие браузеры: Chrome, Firefox — работают корректно .
Описание проблемы
При использовании модуля PWA на сайте CS-Cart пользователи Яндекс.Браузера на Android сталкиваются со следующими проблемами:
- При первой попытке авторизации браузер показывает предупреждение об «атаке» (из-за неполной цепочки сертификатов, которую браузер не может достроить самостоятельно).
- Со второй попытки вход выполняется, но при переходе на любую страницу сессия пользователя самопроизвольно сбрасывается .
- Ключевое наблюдение: Проблема полностью исчезает в режиме «Инкогнито» .
- Техническая деталь: Консоль разработчика показывает, что старый Service Worker продолжает кэшироваться и работать, конфликтуя с механизмом обновления сессии. Принудительное обновление через DevTools («Update on reload») временно решает проблему.
Причина
Мобильный Яндекс.Браузер имеет неполную поддержку сторонних PWA, что приводит к конфликту Service Worker с сессионными куками. В режиме инкогнито Service Worker не используется, поэтому проблема не проявляется.
Предлагаемое решение:
Решение 1: Добавить определение User-Agent и отключать PWA для Яндекс.Браузера.
Решение 2: Добавить версионирование Service Worker, привязанное к очистке кэша в админке.
- При нажатии «Очистить кэш» — автоматически менять версию Service Worker
- Имя кэша формировать с учётом версии:
offline-v{номер_версии} - В обработчике
installудалять все старые версии кэша
В текущем модуле PWA для CS-Cart обновляется только офлайн-страница , а сам Service Worker нет.
В техподдержку Яндекса я тоже написала, но они в принципе не поддерживают PWA, поэтому, логичнее их вообще исключить, чтобы не было проблем с сессиями.