Omniauth jwt redirigir

Después de esto, he podido configurar SSO con JWT.

Con la biblioteca discourse-omniauth-jwt, no estoy seguro de cómo redirigir a las personas después de iniciar sesión.

Cuando un usuario inicia sesión en mi sitio, obtengo el JWT y también los inicio sesión en Discourse de inmediato. Al final de este flujo, terminan en el sitio de Discourse en lugar de volver a mi sitio.

He intentado revisar los métodos de redirección de la biblioteca omniauth, que incluyen el parámetro origin y la cookie destination_url desde aquí. Ninguno de ellos parece funcionar.

Quizás @eviltrout pueda aclarar esto.

EDIT: Acabo de darme cuenta de que he estado revisando dos bibliotecas diferentes: omniauth y las llamadas de omniauth de Discourse. De todos modos, sigo sin saber cómo hacer que esto funcione.

El problema aquí es:

  1. Un usuario inicia sesión en tu sitio.
  2. Lo rediriges a Discourse para que inicie sesión allí.
  3. ¿Acaba iniciando sesión en Discourse?

No creo que esta sea una ruta compatible. En general, un usuario estaría en Discourse, haría clic en “Iniciar sesión”, visitaría tu sitio para la autenticación y sería redirigido de vuelta. Si un usuario inicia sesión directamente en tu sitio, debería permanecer en tu sitio.

Normalmente, lo que hacemos es mantener a Discourse sin iniciar sesión, pero cuando hacen clic en “Iniciar sesión”, se redirigen sin tener que volver a rellenar el formulario de autenticación.

Hmm, sí, tiene sentido. Iniciar sesión no hace mucho ahora que lo pienso, ya que el embed no puede aprovechar la sesión de autenticación.

Así que, los embeds sí utilizan la sesión de autenticación (o la cookie de sesión) para mostrar u ocultar temas privados de Discourse.

Este flujo de autenticación tiene sentido, pero para empezar, redirigiré a los usuarios al foro de Discourse para iniciar sesión en una nueva pestaña. Podrán acceder a los temas privados después de actualizar la página.