Flujo de inicio de sesión (Flask -> Discourse -> Flask) con OAuth

¡Hola!

Tengo dos preguntas relacionadas; espero que alguien pueda ayudarme :slight_smile:

He configurado mi instancia de Discourse para admitir OAuth a través de Twitter, Facebook y Google. Lo que busco hacer es lo siguiente:

Escenario 1:

  1. El usuario llega a /home (aplicación Python/Flask)
  2. Quiere registrarse en una cuenta de Discourse.
  3. Se redirige al flujo de OAuth correspondiente, por ejemplo, https://discourse.example.com/auth/google.
  4. ¿Puedo redirigirlo de vuelta a /home una vez que complete su registro?

Escenario 2:

  1. El usuario llega a /home (aplicación Python/Flask)
  2. Ya tiene una cuenta de Discourse.
  3. Quiere iniciar sesión en la aplicación principal usando OAuth para acceder a una página protegida.
  4. Se redirige al flujo de OAuth correspondiente.
  5. ¿Puedo redirigirlo a /user una vez que Discourse haya verificado sus credenciales?

Por favor, avísame si algo no está claro y con gusto lo explicaré mejor.

¡Gracias!

Solo por si aún no lo has visto, nuestra documentación está en Discourse OAuth2 Basic. ¿Tiene algunas de las respuestas que estás buscando?

¡Gracias por la respuesta, @rishabh!

Desafortunadamente, por lo que puedo ver, la documentación no aborda mis preguntas. Mis configuraciones de OAuth funcionan como se espera; solo la funcionalidad adicional descrita en los escenarios 1 y 2 causa problemas.

Lo que busco es algo similar a un parámetro opcional, callback_url, que redirija al usuario a su URL de destino, después de que el proveedor de OAuth haya verificado su cuenta y lo haya devuelto a Discourse.

Supongo que es como si mi instancia de Discourse actuara como un proveedor de OAuth en sí misma para mi aplicación Flask/Python.

Por ejemplo, https://discourse.example.com/auth/google?callback_url=https://example.com/home lleva al usuario a Google, lo devuelve a Discourse, que a su vez lo redirige a callback_url.