Membres de Discourse déconnectés - comment résoudre ce problème ?

Hmm. Lorsque les utilisateurs consultent les forums et lisent des sujets, etc., si ils effectuent une action génératrice d’événement (create_post, create_topic, edit_post, etc.), je reçois un message via le webhook. Cela indique au site principal qu’ils sont toujours actifs, ce qui me permet de mettre à jour la valeur « Last Click » de leur session et d’éviter ainsi une déconnexion. C’est normal. Tout va bien.

Cependant, si un membre se contente de lire des messages pendant un certain temps… son temps d’inactivité sur Discourse est réinitialisé à chaque fois qu’il effectue une action (ce qui est bien), mais mon site principal ne reçoit aucun message webhook indiquant que l’utilisateur est actif. Ainsi, après une heure sans aucune activité (il semble qu’ils soient allés sur les forums et aient quitté leur ordinateur), le site principal suppose qu’ils sont déconnectés et les déconnecte.

Il semble qu’il y ait un trou dans la logique ici. Pour une mise en œuvre correcte du SSO, ne devrait-il pas exister un moyen pour Discourse de m’indiquer si la session d’un utilisateur est active (même s’ils se contentent de lire) ? Peut-être que Discourse devrait envoyer un ping toutes les 5 minutes si le membre est actif mais n’a généré aucun autre message webhook.

Ou peut-être que lorsque mon site pense qu’un utilisateur a expiré, je devrais contacter Discourse pour demander si l’utilisateur est actif de leur côté. Existe-t-il un moyen de faire cela ? (Je vois Is there an endpoint to check if a user is logged in - #3 by pfaffman, mais je ne suis pas tout à fait sûr que ce soit ce qu’il me faut, et /session/current.json ne figure pas dans la documentation de l’API.) Cela générerait cependant un grand nombre d’appels API : je déconnecte environ 15 à 20 utilisateurs chaque minute sur mon site pour inactivité, ce qui signifierait un appel pour chacun (et peut-être plus d’un appel si je n’ai pas de cache local de leur ID Discourse).

Amis, qu’en pensez-vous ? Quel est votre avis ?