He investigado un poco mi problema y creo que estoy cerca, pero quizás necesite un pequeño empujón en la dirección correcta.
Básicamente, estoy intentando integrar Discourse como una implementación headless en mi proyecto de React, que ya tiene usuarios autenticados en su propia base de datos.
Para hacer esto, cuando el usuario inicia sesión en la página de React, realizará un SSO para que el usuario se autentique con la API de Discourse, de modo que podamos llamar a las funciones apropiadas, etc.
Entonces, primero estoy obteniendo datos de mi URL de Discourse y evitando cualquier redirección de la siguiente manera:
const response = await fetch('https://forum.mysite.com/session/sso', {
method: 'GET',
redirect: 'manual', // Evitar el seguimiento automático de redirecciones
});
Luego hago toda la validación y envío el Payload con la información del usuario al backend usando:
const loginResponse = await fetch(newurl.toString(), {
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'manual',
});
Y el formato, la firma y todo lo demás parecen correctos. Pero me da un error. Así que comenté esto y copié la URL generada en mi navegador para ver qué pasaba y me da esto:
Registro detallado de SSO: Nonce incorrecto, fue generado en una sesión de navegador diferente o ha expirado add_groups: admin: avatar_force_update: avatar_url: bio: card_background_url: confirmed_2fa: e
Así que, después de investigar un poco, creo que estas respuestas están cerca de ayudarme, pero todavía no tengo muy claro qué cambiar para mi configuración y force_https parece que ya no es una configuración que podamos manipular (ni siquiera estoy seguro de lo que hace):
Siento que podría ser causado por diferentes sesiones de navegador, pero no lo sé. Creo que estoy cerca de conseguir que esto funcione, solo necesito un pequeño empujón. Cualquier información sería útil. ¡Gracias!
