¿Cómo configurar el idioma para usuarios SSO?

Para un usuario nuevo que nunca antes ha iniciado sesión en Discourse, debería funcionar si el parámetro locale se establece en la carga útil la primera vez que el usuario inicia sesión en el sitio. Por ejemplo, usando la documentación de npm que enlazaste:

var userparams = {
	// Requerido, de lo contrario lanzará una excepción
	"nonce": nonce,
	"external_id": "algún id de usuario aquí",
	"email": "algún correo electrónico de usuario",
	// Opcional
	"username": "algún nombre de usuario",
	"name": "algún nombre real",
    "locale": "es"
};

Para un usuario existente que ya tiene una cuenta en Discourse, necesitarás agregar el parámetro locale_force_update a userparams y establecerlo en true. Creo que en tu caso podrías incluir el parámetro locale_force_update tanto al crear un usuario nuevo como al actualizar un usuario:

var userparams = {
	// Requerido, de lo contrario lanzará una excepción
	"nonce": nonce,
	"external_id": "algún id de usuario aquí",
	"email": "algún correo electrónico de usuario",
	// Opcional
	"username": "algún nombre de usuario",
	"name": "algún nombre real",
    "locale": "es",
    "locale_force_update": true
};

Desafortunadamente, para actualizar la configuración regional, u otros atributos a través de la carga útil de DiscourseConnect, el usuario tendrá que cerrar sesión en Discourse y luego volver a iniciarla. Esto significa que es poco probable que el usuario obtenga la configuración regional actualizada de inmediato. Hay una solución para esto, pero no creo que sea manejada por el paquete npm discourse-sso. Para actualizar un usuario a través de DiscourseConnect sin requerir que cierre y vuelva a iniciar sesión en Discourse, necesitas hacer una llamada a la ruta sync_sso. Los detalles sobre eso están aquí: Sync DiscourseConnect user data with the sync_sso route.

Si tienes problemas para configurar correctamente la configuración regional para usuarios nuevos, o para usuarios que cierran sesión y vuelven a iniciarla después de agregar los parámetros de configuración regional, intenta habilitar la configuración del sitio de Discourse verbose discourse connect logging. Eso te permitirá ver los parámetros que se envían a Discourse desde la página /logs de tu sitio (que se encuentra en Admin / Logs / Error Logs).

2 Me gusta