PUT /u/{username}.json ne change pas l'email

Selon la documentation de l’API Discourse (Documentation de l’API Discourse), il devrait être possible de modifier l’e-mail via le point de terminaison référencé.

  1. Utilisez ce point de terminaison d’API : PUT /u/{username}.json
  2. Utilisez ce corps de requête :
{
    "Name": "Test Name",
    "Email": "test@test.com"
}
  1. Réponse 200 OK. Le nom change, l’e-mail non.

La réponse ne contient pas le champ “email”.

1 « J'aime »

Je vous recommande de faire de l’ingénierie inverse sur l’API Discourse et de voir quel appel d’API utiliser.

2 « J'aime »

Salut xbd,

Selon la documentation, la modification de l’e-mail utilise ce point de terminaison : /u/{username}/preferences/email.json : https://docs.discourse.org/#tag/Users/operation/updateEmail

Cependant, cela enverra un lien de confirmation à l’adresse e-mail pour qu’il soit approuvé manuellement par l’utilisateur. Jusque-là, l’e-mail ne sera pas modifié.

5 « J'aime »

Merci pour votre aide. Il serait peut-être utile de supprimer la propriété email de la PUT /u/{username.json} dans la documentation. Cela pourrait vous faire gagner du temps de débogage ;-).

Concernant l’e-mail de confirmation : j’en ai lu parler dans un autre sujet. Je ne vois pas l’intérêt. Au cas où, Discourse est une application parmi d’autres dans le projet et l’authentification des utilisateurs est gérée par un serveur d’authentification personnalisé (comme dans mon cas). Le serveur d’authentification gère la confirmation par e-mail. Les applications devraient simplement faire ce que dit le serveur d’authentification. C’est, à mon avis, la manière normale de faire. Sinon, cela entraîne plusieurs e-mails de confirmation, des jeux de données différents…

2 « J'aime »

Merci d’avoir soulevé ce point. C’est effectivement étrange. Il s’agit peut-être d’un vestige d’une époque révolue. Je vais recueillir des informations et mettre à jour la documentation si nécessaire. :+1:

2 « J'aime »

Le paramètre d’administration auth overrides email (l’authentification remplace l’e-mail) aide-t-il à cela ?

4 « J'aime »

Vous devez alors le configurer pour indiquer à Discourse que l’adresse e-mail a été validée et ne pas mettre à jour l’e-mail sur l’API, mais sur votre serveur d’authentification.

2 « J'aime »

Merci encore d’avoir soulevé ce point et désolé pour le temps passé à déboguer. La documentation de l’API a été mise à jour.

3 « J'aime »