Comment créer une connexion sur mon application front-end à un site Discourse spécifique ?

Bonjour,
J’essaie de créer un processus de connexion à Discourse depuis mon application front-end. Comment dois-je faire ?

Merci :folded_hands:

C’est la solution habituelle :

Si vous gérez uniquement les utilisateurs sur Discourse, un bouton de redirection est probablement plus simple !

1 « J'aime »

Merci pour votre réponse ! mais puis-je réellement ouvrir une sorte d’iframe pour qu’ils puissent choisir comment être authentifiés ?

Non, les iframes ne sont pas prises en charge.

Vous voulez soit gérer les comptes utilisateurs sur votre site parent, puis vous authentifier avec Discourse Connect, soit simplement avoir un lien vers votre Discourse.

Pourriez-vous créer un lien vers la route de connexion pour les inviter immédiatement ? /login

Je ne comprends pas vraiment comment utiliser ceci. Je veux dire, j’imagine un bouton de connexion sur mon site web, puis l’utilisateur doit choisir comment s’authentifier, n’est-ce pas ? Je veux dire, quel est le flux possible pour ce scénario ?

Pourquoi avez-vous besoin qu’ils se connectent sur votre site Web ? Gérez-vous les comptes d’utilisateurs là-bas ?

Je veux pouvoir créer des publications/sujets depuis mon interface utilisateur, j’ai donc besoin qu’ils soient d’abord authentifiés. Est-ce logique ?

OK, c’est logique. En gros, vous dites : « Je veux réécrire des parties de l’interface utilisateur et communiquer uniquement via l’API » ?

Je ne pense pas que vous obtiendrez beaucoup de support gratuit pour vous aider à faire cela ici, mais jetez un œil à :

https://meta.discourse.org/t/help-with-authenticating-user-via-api/178355/2?u=merefield

Il existe des efforts existants pour cela, en particulier via l’application, vous pourriez vouloir les rechercher, par exemple :

Il y avait aussi Fig, mais ce n’est pas encore open source :

Mais notez le niveau extrêmement élevé de développement initial et de maintenance que ces types de solutions nécessitent. Je crois que les deux meilleurs exemples ont été abandonnés (?)

Alternativement, envisagez de construire votre site Web en tant qu’instance Discourse entièrement (via des plugins et des composants de thème) pour éviter d’avoir à réécrire de nombreux éléments de l’interface utilisateur.

1 « J'aime »

J’utilise Discourse comme fournisseur d’identité et cela fonctionne très bien. Vous pouvez l’utiliser pour créer un lien « Connexion » sur votre site web qui redirigera votre utilisateur vers votre instance Discourse et, s’il est déjà connecté ou après avoir terminé le processus de connexion, l’utilisateur sera redirigé vers l’return_sso_url que vous avez ajouté à la charge utile, avec les informations d’identification et les informations de l’utilisateur. Cette return_sso_url peut être une route sur votre site web qui stocke la session authentifiée comme vous le préférez (comme un cookie de session) une fois qu’elle reçoit la charge utile de Discourse.

3 « J'aime »

Pour information, Lexicon n’est pas abandonné et est toujours en cours de développement actif.

@Roie_Natan si vous connaissez Javascript, vous pourriez examiner le code source de Lexicon pour voir comment cela a été réalisé.

Cependant, comme @merefield l’a souligné, il existe des publications existantes qui pourraient vous aider à le découvrir.

Voici une ressource parlant des sessions utilisateur : Storing extra data about a user's session - #3 by sam

Et vous pourriez également trouver le flux d’authentification de l’application de @pmusaraj utile :

3 « J'aime »

C’est super ! Merci pour la correction.