Omniauth jwt redirection

Après cela, j’ai réussi à mettre en place le SSO avec JWT.

Avec la bibliothèque discourse-omniauth-jwt, je ne suis pas sûr de savoir comment rediriger les utilisateurs après la connexion.

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.

Le problème est donc le suivant :

  1. un utilisateur se connecte à votre site
  2. vous le redirigez vers Discourse pour s’y connecter
  3. 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.

Hmm, c’est logique. La connexion ne sert pas à grand-chose maintenant que j’y pense, car l’embed ne peut pas utiliser la session 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.