Ne supprimez pas toutes les souscriptions push lors de la déconnexion

Il semble également que lorsqu’un utilisateur se déconnecte, toutes les souscriptions push sont supprimées. Ainsi, si un utilisateur est connecté sur plusieurs appareils (téléphone, navigateur, tablette) et se déconnecte d’un appareil ou d’une session, cela empêche les autres appareils de recevoir des notifications, car leurs souscriptions push ont été supprimées.

Je le mentionne car cela est lié à la nécessité de savoir quelle souscription doit être remplacée lors du renouvellement et laquelle doit être supprimée lors de la déconnexion.

6 « J'aime »

Eh bien, je venais d’être déconnecté de Meta aujourd’hui et, après m’être reconnecté, j’ai reçu une notification push pour votre publication… À moins que cela ne se produise uniquement lors d’une connexion initiée par l’utilisateur :thinking:

6 « J'aime »

Lorsqu’un utilisateur revient sur le forum (ou se connecte), les abonnements de notification push du navigateur sont renvoyés et recréés. Cependant, si vous vous êtes déconnecté, ils sont supprimés et aucune notification push ne sera délivrée tant que l’utilisateur ne se rendra pas sur le forum depuis cet appareil.

Cela ne contredit pas ce que vous avez affirmé, car il semble que vous ayez reçu la notification push après vous être connecté.

Référence du code :

6 « J'aime »

Ah, c’est exactement ce que je soupçonnais.

Bonne trouvaille ! Nous devons absolument corriger cela !

Le problème est que, actuellement, nous ne stockons pas pour quel appareil une abonnement spécifique existe…

8 « J'aime »

L’API Push dispose bien d’une fonction unsubscribe pour invalider l’abonnement aux notifications push :

Lors de la déconnexion, nous pourrions invoquer cette fonction (côté client), ce qui rendrait cet abonnement invalide côté serveur sans affecter les autres abonnements.

En fait, le client dispose déjà d’une fonction unsubscribePushNotification qui effectue cette opération dans les préférences « Notifications en direct ». La solution consisterait peut-être à invoquer cette fonction lors de la déconnexion côté client si les notifications en direct sont activées. Il est probablement préférable de révoquer les clés d’abonnement côté client plutôt que de simplement les supprimer du serveur.

2 « J'aime »

La correction peut donc se faire en deux étapes :

  1. Supprimer le code de nettoyage côté serveur
  2. Ajouter un nouveau code pour se désabonner côté client.
5 « J'aime »

Fait

https://meta.discourse.org/t/ios-android-push-notifications-on-self-hosted-discourse-docker/394149/18?u=falco

1 « J'aime »

Ce sujet a été automatiquement fermé après 4 jours. De nouvelles réponses ne sont plus autorisées.