Bonjour, j’intègre Discourse avec un site communautaire où les membres peuvent déjà se « bloquer » mutuellement. Ainsi, lorsqu’un membre de mon site s’authentifie via SSO sur Discourse, j’aimerais également transmettre la liste des external_id bloqués. Je suppose que ceux-ci peuvent simplement être ajoutés au champ « Utilisateurs ignorés » côté Discourse…
Si ce n’est pas possible, pour réaliser cette fonctionnalité, il semblerait que je doive configurer un webhook et, lorsque je reçois un événement user_logged_in via ce webhook, utiliser l’API Discourse pour transmettre la liste des utilisateurs ignorés… est-ce exact ? (Et dans ce cas : où se trouve cet appel dans l’API ? Je n’ai pas réussi à le trouver !)
Oui, cela ressemble un peu aux fonctionnalités SSO déjà présentes dans d’autres extensions. C’est assez rare d’avoir besoin de cela, alors je suis partagé quant à savoir s’il faut l’ajouter au protocole ou non.
Le webhook fonctionnera : vous serez notifié lors de la connexion, puis vous pourrez effectuer un second appel vers Discourse pour synchroniser la liste via notre API.
Salut Sam, oui, pour mon problème immédiat, je vais simplement répondre à l’événement du webhook user_logged_in — pas de souci. Merci pour ça.
Je comprends ton point de vue concernant ce qui peut être transmis via SSO. Au fur et à mesure que j’intègre Discourse en profondeur avec mon site, je comprends mieux comment vous avez choisi d’implémenter le SSO. Cela fonctionne bien pour l’instant, mais je pense qu’il pourrait être intéressant de regrouper toutes les cases à cocher « SSO overrides… » en une seule case générale du type « Le SSO gère tous les attributs utilisateur » (ou quelque chose dans ce genre).
L’idée serait que si j’active cette case à cocher SSO globale, la seule chose à laquelle je devrais faire attention est l’external_id : garantir à Discourse qu’elle sera toujours unique, identifiera toujours le même utilisateur et ne changera jamais. Une fois cela en place, je pourrais transmettre tous les champs souhaités avec la requête SSO et charger l’utilisateur entièrement depuis ma base de données.