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.

1 « J'aime »

So the issue here is:

  1. a user logs into your site
  2. you redirect them to discourse to log in there
  3. they end up logged in at discourse?

I don’t think this is a supported path. In general, a user would be on discourse, click login, visit your site for auth and be redirected back. If a user logs in directly on your site, they should stay on your site.

Typically how we do this is keep Discourse logged out, but when they click “Login” it’ll redirect back without having to fill out the authentication form again.

7 « J'aime »

Hmm right makes sense. Logging in doesn’t do much now that I think about it since the embed can’t make use of the auth session.

1 « J'aime »

So, the embeds do make use of the auth session (or the session cookie) to show or hide private discourse topics.

This auth flow does make sense, but for starters, I’m going to redirect people to the discourse forum for login on a new tab. They will be able to access private topics after a refresh.