Push-уведомления могут работать после первой подписки, а потом постепенно переставать приходить части пользователей.
Если push используется для заказов, задач, статусов или возврата пользователя, потеря token означает потерю канала связи.
Коротко: приложение должно уметь проверять подписку и переиздавать token, а не хранить его навсегда.Почему возникает проблема
Token может измениться после обновления браузера, очистки данных, смены service worker, истечения FCM token, изменения VAPID-ключей или отзыва разрешения пользователем.
Что проверить в первую очередь
- регистрируется ли service worker
- актуальны ли VAPID или FCM настройки
- сохраняется ли новый token на сервере
- проверяется ли разрешение notifications
- удаляются ли невалидные подписки
Как я решаю такую задачу
Я проверяю push как двухстороннюю систему: браузерная подписка и серверная база token.
- проверяю регистрацию service worker
- смотрю получение token на клиенте
- исправляю повторную регистрацию
- обновляю token на сервере
- тестирую отправку и обработку невалидных подписок
Что подготовить
- страницу подписки на push
- какой сервис используется
- пример пользователя без уведомлений
- доступ к frontend и backend
- ключи VAPID/FCM при необходимости
Сроки и риски
Если сломалась регистрация service worker, правка точечная. Если в базе накопились старые token, нужно добавить очистку и обновление.
Чего лучше не делать
Не отправляйте push бесконечно на невалидные token. Это создает ошибки, задержки и шум в логах.
FAQ
Пользователь должен заново разрешать уведомления?
Не всегда. Если разрешение сохранено, можно переиздать подписку программно.
Почему push работает в одном браузере, а в другом нет?
У браузеров разные требования к service worker, HTTPS и разрешениям.
Нужно ли хранить device id?
Полезно, чтобы управлять несколькими устройствами одного пользователя.
Можно ли увидеть ошибку отправки?
Да, сервер отправки push обычно возвращает статус невалидной подписки.
Нужна похожая задача?
Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Пришлите ссылку, пример ошибки и короткое описание того, как должно работать. Я посмотрю задачу, предложу безопасный план и скажу, какие доступы понадобятся.
Итог
Push-система должна автоматически обновлять token, удалять невалидные подписки и сохранять доставку уведомлений без ручной переподписки каждого пользователя.