PUT /u/{username}.json no cambia el correo electrónico

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.

  1. Utiliza este endpoint de la API: PUT /u/{username}.json
  2. Utiliza este cuerpo de solicitud:
{
    "Name": "Test Name",
    "Email": "test@test.com"
}
  1. Se recibió 200 OK. El nombre cambiará, el correo electrónico no.

La respuesta no contiene el campo “email”.

1 me gusta

Te recomiendo que realices ingeniería inversa de la API de Discourse y veas qué llamada a la API usar.

2 Me gusta

Hola xbd,

Según la documentación, cambiar el correo electrónico utiliza este endpoint: /u/{username}/preferences/email.json: https://docs.discourse.org/#tag/Users/operation/updateEmail

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á.

5 Me gusta

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…

2 Me gusta

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. :+1:

2 Me gusta

¿La configuración de administrador auth overrides email ayuda con esto?

4 Me gusta

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.

2 Me gusta

Gracias de nuevo por mencionarlo y lamento el tiempo dedicado a la depuración. La documentación de la API se ha actualizado.

3 Me gusta