Flux de connexion Discourse

Nous cherchons à construire une communauté en utilisant les API de Discourse. Nous rencontrons un problème dans le flux.

Notre Front-end est une application React et notre Back-end est basé sur NodeJS avec une architecture MS. Nous gérons tout le flux d’authentification de notre côté.

D’après ma compréhension de Discourse Connect,

  1. Le Front-end crée la charge utile (payload), avec un nonce, des informations utilisateur, puis effectue un appel à example.com/session/SSO ?sso=xx&sig=xx
  2. Discourse effectue ensuite un rappel à l’URL discourse_connect_url, où je valide la charge utile et retourne l’URL de redirection, et les utilisateurs seront redirigés vers Discourse.

Cependant, lorsque je crée la charge utile avec les informations utilisateur, je ne parviens pas à les propager de mon Front-end vers Discourse, puis vers le Back-end. Quelqu’un peut-il m’aider ou ma compréhension est-elle correcte ? J’ai également cherché sur le forum des solutions attendues, mais sans succès.

Notez que lorsque je code en dur les informations utilisateur depuis le Back-end, je parviens à connecter les utilisateurs à Discourse.

Je souhaite que notre site web soit le fournisseur d’authentification pour Discourse, et propager les informations utilisateur du Front-end vers le Back-end. Quelqu’un peut-il m’aider avec le flux ou peut-être avec des exemples pour Javascript ?

1 « J'aime »

Salut Ankit,

Le flux est en fait l’inverse de ce que vous avez décrit. Lorsque vous configurez Discourse Connect sur votre site :

  1. Cliquer sur le bouton de connexion vous mènera à discourse_connect_url avec 2 paramètres GET : sso et sig.
  2. L’utilisateur entrera ses identifiants sur discourse_connect_url et sera authentifié par votre site. Si l’authentification réussit, vous devrez décoder le sso et suivre les étapes supplémentaires décrites dans le sujet Discourse Connect.

J’ai un problème de flux similaire, je ne veux pas que mon utilisateur accède à Discourse et clique sur connexion, je veux que mon utilisateur accède à ma plateforme et clique sur le bouton Accéder à Discourse et accède à Discourse de manière transparente.

Est-il possible pour ma plateforme de générer un ‘nonce’ pour mon utilisateur via une API de manière sécurisée, sans qu’il ait à accéder à Discourse au préalable et à cliquer sur connexion ?

Remarque : Je peux le faire moi-même en accédant à Discourse et en cliquant sur le bouton pour eux, sans qu’ils le sachent, mais ce n’est pas sûr pour l’application.

L’option la plus simple est de faire du bouton « Accéder à Discourse » un lien vers /login sur le forum.