Según la documentación de la API de Discourse (Documentación de la API de Discourse), debería ser posible cambiar el correo electrónico a través del endpoint referenciado.
Utiliza este endpoint de la API: PUT /u/{username}.json
Utiliza este cuerpo de solicitud:
{
"Name": "Test Name",
"Email": "test@test.com"
}
Se recibió 200 OK. El nombre cambiará, el correo electrónico no.
Sin embargo, enviará un enlace de confirmación a la dirección de correo electrónico para que sea aprobado manualmente por el usuario. Hasta entonces, el correo electrónico no se cambiará.
Gracias por tu ayuda. Quizás sea útil eliminar la propiedad de correo electrónico de PUT /u/{username.json} en la documentación. Podría ahorrar tiempo dedicado a la depuración ;-).
Lo de la confirmación por correo electrónico: leí sobre ello en otro tema. No le veo el sentido. Por si acaso, Discourse es una aplicación entre muchas otras en el proyecto y la autenticación de usuarios es manejada por un servidor de autenticación hecho a medida (como en mi caso). El servidor de autenticación maneja la confirmación por correo electrónico. Las aplicaciones solo deberían hacer lo que dice el servidor de autenticación. Esta es, en mi opinión, la forma normal. De lo contrario, se obtienen múltiples correos electrónicos de confirmación, diferentes conjuntos de datos…
Gracias por señalarlo. Es extraño, de hecho. Puede ser un remanente de una era pasada. Obtendré información y actualizaré la documentación si es necesario.
Entonces necesitas configurarlo para que le diga a Discourse que la dirección de correo electrónico ha sido validada y que no actualice el correo electrónico en la API, sino en tu servidor de autenticación.