PUT /u/{username}.json non cambia l'email

Secondo la documentazione dell’API di Discourse (Documentazione API di Discourse), dovrebbe essere possibile cambiare l’email tramite l’endpoint di riferimento.

  1. Utilizza questo endpoint API: PUT /u/{username}.json
  2. Utilizza questo corpo della richiesta:
{
    "Name": "Test Name",
    "Email": "test@test.com"
}
  1. Ricevuto 200 OK. Il nome cambierà, l’email no.

La risposta non contiene il campo “email”.

1 Mi Piace

Ti consiglio di fare il reverse engineering dell’API di Discourse e vedere quale chiamata API utilizzare.

2 Mi Piace

Ciao xbd,

Secondo la documentazione, la modifica dell’email utilizza questo endpoint: /u/{username}/preferences/email.json: \u003chttps://docs.discourse.org/#tag/Users/operation/updateEmail\u003e

Tuttavia, verrà inviato un link di conferma all’indirizzo email per l’approvazione manuale da parte dell’utente. Fino ad allora, l’email non verrà modificata.

5 Mi Piace

Grazie per il tuo aiuto. Forse sarebbe utile rimuovere la proprietà email dal PUT /u/{username.json} nella documentazione. Potrebbe far risparmiare tempo dedicato al debug ;-).

La questione dell’email di conferma: ne ho letto in un altro argomento. Non ne capisco il senso. Nel caso, Discourse è un’applicazione tra le altre del progetto e l’autenticazione degli utenti è gestita da un server di autenticazione personalizzato (come nel mio caso). Il server di autenticazione gestisce la conferma via email. Le applicazioni dovrebbero solo fare ciò che dice il server di autenticazione. Questa è secondo me la prassi normale. Altrimenti si finisce con email di conferma multiple, set di dati diversi…

2 Mi Piace

Grazie per aver sollevato la questione. È strano in effetti. Potrebbe essere un residuo di un’era passata. Raccoglierò alcune informazioni e aggiornerò la documentazione se necessario. :+1:

2 Mi Piace

L’impostazione amministrativa auth overrides email aiuta in questo?

4 Mi Piace

Quindi devi configurarlo per dire a Discourse che l’indirizzo email è stato convalidato e non aggiornare l’email sull’API, ma sul tuo server di autenticazione.

2 Mi Piace

Grazie ancora per aver sollevato la questione e mi scuso per il tempo dedicato al debug. La documentazione dell’API è stata aggiornata.

3 Mi Piace