Si je comprends bien, nous pouvons laisser Discourse utiliser notre API pour valider l’authentification et envoyer également des paramètres personnalisés. Corrigez-moi si je me trompe.
Ce que nous voulons, c’est utiliser notre propre page de connexion (lorsque les utilisateurs cliquent sur connexion sur discourse.open…com, notre page de connexion “kan.open..com” devrait s’ouvrir). Et une fois la connexion réussie, elle devrait rediriger vers le site Discourse. Nous avons vu plusieurs sites comme Twitter ou Atlassian faire la même chose. Pouvez-vous nous aider avec plus de détails sur la façon dont cela peut être réalisé.
C’est exact si par « utiliser notre API » vous entendez « Nous allons modifier notre API pour prendre en charge Discourse Connect ». Les détails sur la façon de procéder se trouvent dans les documents que vous avez liés. Si vous souhaitez que tout le monde soit redirigé immédiatement plutôt que de voir quoi que ce soit sur votre forum, vous devrez activer le paramètre du site « connexion requise ».
J’ai une question concernant la configuration de Discourse SSO (DiscourseConnect). Existe-t-il un moyen d’inclure des paramètres supplémentaires dans la requête lorsque Discourse accède à l’URL DiscourseConnect ? Plus précisément, je souhaite transmettre des données utilisateur dans la requête à l’URL DiscourseConnect, telles qu’un jeton utilisateur ou un identifiant utilisateur, que je peux utiliser pour authentifier l’utilisateur et compléter le processus de connexion SSO.
Le défi auquel je suis confronté est que les utilisateurs doivent se connecter deux fois : une fois à mon projet, puis à nouveau à Discourse lors de la connexion via SSO. Idéalement, j’aimerais simplifier le processus afin que si l’utilisateur est déjà connecté à mon projet, il n’ait pas à se connecter à nouveau avec les mêmes informations d’identification sur mon projet.
Existe-t-il une fonctionnalité dans Discourse ou des bonnes pratiques pour gérer cela ? J’apprécierais toute aide ou suggestion pour rendre l’expérience SSO plus fluide.
Une approche pour traiter ce scénario est décrite dans la section « Rendre le processus transparent pour les utilisateurs authentifiés » de ce sujet : Create a DiscourseConnect login link.
La première fois que j’effectue une connexion SSO avec Discourse, j’aimerais savoir s’il existe une API ou une méthode disponible qui peut me fournir des données utilisateur, telles qu’un ID utilisateur ou un jeton, que je peux envoyer à l’API Discourse. En retour, Discourse inclurait ces données, comme l’ID utilisateur ou le jeton, dans la requête d’URL Discourse Connect.
Vous pouvez utiliser l’external_id que vous avez défini dans la charge utile DiscourseConnect pour effectuer une requête API à Discourse. Cette requête renverra l’objet utilisateur complet.
Vous ne comprenez pas ce que je veux dire. Je ne demande pas comment récupérer les détails d’un utilisateur de Discourse après la connexion. Veuillez comprendre le flux complet de ce que j’essaie d’accomplir et faites-moi savoir si c’est possible avec Discourse ou si je dois continuer avec ma propre approche.
Actuellement, j’ai un projet construit avec le framework Laravel, et je veux donner aux utilisateurs l’accès au forum Discourse pour obtenir des commentaires. J’ai décidé d’implémenter la connexion SSO pour Discourse. J’ai créé un compte administrateur Discourse et activé les paramètres nécessaires pour la connexion SSO, y compris l’activation de SSO, la définition de l’URL de redirection et la configuration du secret.
Maintenant, j’ai ajouté un bouton ‘Discourse Connect’ à l’intérieur de mon projet. Je veux que lorsque les utilisateurs cliquent sur ce bouton, ils s’enregistrent ou se connectent en utilisant mes identifiants, et se connectent automatiquement à Discourse. Lorsque les utilisateurs cliquent sur le bouton ‘Discourse Connect’, ils sont redirigés vers mon URL de communauté de base avec le point de terminaison de session/sso, qui redirige ensuite vers mon URL Discourse Connect. Je reçois les paramètres SSO et sig dans la requête, que je comprends être pour la validation. Cependant, j’ai besoin de l’user_id ou d’un identifiant pour récupérer les données de l’utilisateur de ma base de données afin de valider, authentifier et connecter l’utilisateur à Discourse.
Ma question est : existe-t-il une API ou un mécanisme dans Discourse qui peut renvoyer l’user_id avec les paramètres SSO et sig dans la requête ? Ceci est important car, sans récupérer les données de l’utilisateur dans la requête, je devrais faire en sorte que l’utilisateur se connecte à nouveau, ce qui offrirait une mauvaise expérience utilisateur. Essentiellement, lorsqu’un utilisateur se connecte à mon projet et clique sur le bouton ‘Discourse Connect’, l’URL Discourse Connect est déclenchée et je reçois les paramètres SSO et sig. Pour authentifier l’utilisateur, je dois récupérer les données de l’utilisateur de la base de données, mais cela nécessiterait que l’utilisateur se connecte à nouveau, ce que je veux éviter.
Je veux une expérience transparente où, si l’utilisateur est déjà connecté une fois, il n’a pas besoin de se connecter à nouveau. Il devrait pouvoir accéder au forum Discourse directement avec ses identifiants de projet.