He configurado Discourse en mi máquina local y quería configurar el inicio de sesión SSO. Puedo redirigir al usuario cuando hace clic en iniciar sesión, pero cuando me redirigen, sigo recibiendo errores. Habilité el registro y dice: Nonce is incorrect, was generated in a different browser session, or has expired
Este es el archivo de Python que estoy usando: Discourse-setup/main.py at main · kamleshjoshi8102/Discourse-setup · GitHub
Tenga en cuenta que en mi caso se está ejecutando en el puerto 4201, por lo que he redirigido al puerto 4201 al iniciar sesión.
def nonce_valid?
if SiteSetting.discourse_connect_csrf_protection
nonce && @secure_session[nonce_key].present?
else
nonce && Discourse.cache.read(nonce_key).present?
end
end
Está comprobando que el nonce fue generado por Discourse para la misma sesión que la que redirige al usuario de vuelta a Discourse.
Podrías intentar establecer el ajuste del sitio discourse_connect_csrf_protection a false. Su valor predeterminado es true. Es un ajuste de sitio oculto, por lo que solo se puede deshabilitar desde la consola de Rails.
Cuando está habilitado, el ajuste discourse_connect_csrf_protection asegura que todo el proceso de autenticación SSO ocurra a través de redirecciones del navegador. Si estás iniciando el proceso de autenticación haciendo una solicitud en segundo plano a session/sso, necesitarás deshabilitarlo. Más detalles aquí: DiscourseConnect flow no longer functions - #5 by david.