PUT /u/{username}.json ändert die E-Mail nicht

Laut den Discourse API Docs (Discourse API Docs) sollte es möglich sein, die E-Mail über den genannten Endpunkt zu ändern.

  1. Verwenden Sie diesen API-Endpunkt: PUT /u/{username}.json
  2. Verwenden Sie diesen Request Body:
{
    "Name": "Test Name",
    "Email": "test@test.com"
}
  1. 200 OK erhalten. Name wird geändert, E-Mail nicht.

Die Antwort enthält nicht das Feld “email”.

1 „Gefällt mir“

Ich empfehle Ihnen, die Discourse-API zu Reverse-Engineeren und zu sehen, welchen API-Aufruf Sie verwenden können.

2 „Gefällt mir“

Hallo xbd,

Laut der Dokumentation wird die E-Mail-Änderung über diesen Endpunkt vorgenommen: /u/{username}/preferences/email.json: https://docs.discourse.org/#tag/Users/operation/updateEmail

Es wird jedoch ein Bestätigungslink an die E-Mail-Adresse gesendet, der vom Benutzer manuell genehmigt werden muss. Bis dahin wird die E-Mail nicht geändert.

5 „Gefällt mir“

Vielen Dank für Ihre Hilfe. Vielleicht ist es hilfreich, die E-Mail-Eigenschaft aus dem PUT /u/{username.json} in der Dokumentation zu entfernen. Das könnte Zeit bei der Fehlersuche sparen ;-).

Das mit der Bestätigungs-E-Mail: Ich habe davon in einem anderen Thema gelesen. Ich verstehe den Punkt nicht. Nur für den Fall, Discourse ist eine Anwendung von vielen anderen im Projekt und die Authentifizierung von Benutzern wird von einem maßgeschneiderten Auth-Server gehandhabt (wie in meinem Fall). Der Auth-Server kümmert sich um die E-Mail-Bestätigung. Die Anwendungen sollten einfach tun, was der Auth-Server sagt. Das ist meiner Meinung nach der normale Weg. Andernfalls gibt es mehrere Bestätigungs-E-Mails, unterschiedliche Datensätze…

2 „Gefällt mir“

Vielen Dank, dass Sie dies angesprochen haben. Das ist in der Tat seltsam. Es könnte ein Überbleibsel aus vergangenen Zeiten sein. Ich werde einige Informationen einholen und die Dokumentation bei Bedarf aktualisieren. :+1:

2 „Gefällt mir“

[quote=“xbd, post:4, topic:273272”]Der Authentifizierungsserver kümmert sich um die E-Mail-Bestätigung. Die Anwendungen sollten einfach tun, was der Authentifizierungsserver sagt.
[/quote]

Hilft die Admin-Einstellung auth overrides email dabei?

4 „Gefällt mir“

Dann müssen Sie ihn so konfigurieren, dass er Discourse mitteilt, dass die E-Mail-Adresse validiert wurde, und die E-Mail nicht über die API, sondern auf Ihrem Authentifizierungsserver aktualisiert.

2 „Gefällt mir“

Vielen Dank nochmals, dass Sie dies angesprochen haben, und entschuldigen Sie die Zeit, die Sie mit dem Debuggen verbracht haben. Die API-Dokumentation wurde aktualisiert.

3 „Gefällt mir“