También parece que cuando un usuario cierra sesión, todas las suscripciones de notificaciones push se eliminan. Por lo tanto, si un usuario está conectado en varios dispositivos (móvil, navegador, tableta) y cierra sesión en uno de ellos, se impide que los demás dispositivos reciban notificaciones, ya que sus suscripciones push han sido eliminadas.
Menciono esto porque está relacionado con saber qué suscripción debe reemplazarse durante la renovación y cuál debe eliminarse al cerrar sesión.
Bueno, hoy me cerré la sesión de Meta y, tras volver a iniciarla, recibí una notificación push de tu publicación… A menos que solo ocurra en el flujo de inicio de sesión iniciado por el usuario
Cuando un usuario vuelve al foro (o inicia sesión), las suscripciones de push del navegador se envían de nuevo y se vuelven a crear. Pero si cerraste sesión, se eliminan y no se entregarán notificaciones push hasta que ese usuario acceda al foro desde ese dispositivo.
Esto no contradice lo que mencionaste, ya que parece que indicas que recibiste la notificación push después de iniciar sesión.
La API de Push sí tiene una función unsubscribe para invalidar la suscripción de notificaciones push:
Al cerrar sesión, podríamos invocar esto (en el lado del cliente), lo que haría que la suscripción en el servidor se considere inválida sin afectar a ninguna otra suscripción.
De hecho, el cliente ya tiene una función unsubscribePushNotification que realiza esta acción en las preferencias de “Notificaciones en vivo”. Quizás la solución sea invocar esto al cerrar sesión en el lado del cliente si las Notificaciones en vivo están habilitadas. Probablemente sea una buena práctica revocar las claves de suscripción en el lado del cliente en lugar de simplemente eliminarlas del servidor.