Lorsqu’un utilisateur se connecte à mon site, j’obtiens le JWT et je le connecte également à Discourse immédiatement. À la fin de ce flux, il se retrouve sur le site Discourse au lieu de revenir sur mon site.
J’ai essayé d’examiner les méthodes de redirection de la bibliothèque omniauth, qui incluent le paramètre origin et le cookie destination_url décrits ici. Aucune d’elles ne semble fonctionner.
Peut-être que @eviltrout pourrait éclaircir la situation.
EDIT : Je viens de réaliser que j’ai consulté deux bibliothèques différentes, omniauth et les callbacks omniauth de Discourse. Quoi qu’il en soit, je suis toujours incertain quant à la manière de faire fonctionner cela.
vous le redirigez vers Discourse pour s’y connecter
il se retrouve connecté sur Discourse ?
Je ne pense pas que ce soit un scénario pris en charge. En général, un utilisateur se trouve sur Discourse, clique sur « Se connecter », est redirigé vers votre site pour l’authentification, puis renvoyé. Si un utilisateur se connecte directement sur votre site, il devrait rester sur votre site.
La méthode habituelle consiste à garder Discourse déconnecté, mais lorsque l’utilisateur clique sur « Se connecter », il est redirigé sans avoir à remplir à nouveau le formulaire d’authentification.
Ainsi, les embeds utilisent bien la session d’authentification (ou le cookie de session) pour afficher ou masquer les sujets privés de Discourse.
Ce flux d’authentification est logique, mais pour commencer, je vais rediriger les utilisateurs vers le forum Discourse pour se connecter dans un nouvel onglet. Ils pourront accéder aux sujets privés après une actualisation de la page.