Activar la creación/inicio de sesión en un servicio externo cuando un usuario inicia sesión en discourse

No conozco lo suficiente de tu stack o caso de uso, pero creo que he resuelto un problema similar antes y algunas ideas pueden serte útiles.

Tengo una aplicación Next.js donde necesito que el lado del cliente tenga un JWT válido para hacer llamadas a mi API de backend si hay una sesión de Discourse.

Para esto, utilizo Discourse como mi proveedor de identidad a través de DiscourseConnect.

En mi caso, lo hago con una única llamada fetch del lado del cliente con { credentials: "include" }, lo que solo funciona porque tengo todo configurado con un solo dominio y la llamada fetch sigue las redirecciones de forma transparente.

Mi cliente llama a un /auth/token personalizado, que verifica la existencia de _t (solo para evitar una redirección inútil en caso contrario) y devuelve una redirección a una URL segura /session/sso_provider construida siguiendo la documentación del tema enlazado, con nonce/sso/sig, y un return_sso_url que apunta a un /auth/callback personalizado, que extraerá los datos enviados por Discourse, construirá y devolverá un token JWT que mi cliente podrá usar a partir de ese momento.

Creo que tu caso de uso puede resolverse de manera similar.