E-Mail-Adresse eines Benutzers ändern
Startet den Wechsel der Anmelde-Adresse eines anderen Benutzers. Er gilt, sobald der Benutzer ihn von der neuen Adresse aus bestätigt.
POST /api/users/:id/email-change
Ein Organisations-Admin ändert die Anmelde-Adresse eines Mitglieds seiner eigenen Organisation, ein Global Admin die jedes Benutzers. Die Adresse ändert sich nicht sofort: An die neue Adresse geht ein Bestätigungslink, 24 Stunden gültig, und erst wenn er geöffnet wird, gilt die Änderung. Bis dahin meldet sich der Benutzer weiter mit der bisherigen Adresse an. Das Öffnen des Links meldet niemanden an. Nach der Bestätigung bekommt die alte Adresse einen Hinweis mit der neuen Adresse und dem Namen dessen, der die Änderung beantragt hat.
Eine neue Anfrage ersetzt eine noch offene frühere, es gilt also nur der jüngste Link.
API-Tokens können diesen Endpunkt nicht aufrufen. Er verlangt eine echte, eingeloggte
Benutzer-Session. Hat der aufrufende Admin eine Zwei-Schritt-Bestätigung, bestätigt er zuerst
seinen zweiten Faktor (403 mfa_step_up_required: den Code im Dialog des Dashboards eingeben, dann die
Anfrage wiederholen).
Deine eigene Adresse änderst du stattdessen in deinem Profil, dort mit deinem Passwort.
Anfrage (Request Body)
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
newEmail | string | ja | Die neue Anmelde-Adresse. Wird in Kleinbuchstaben gespeichert. |
Beispiel (cURL)
Rufe diesen Endpunkt aus einer angemeldeten Browser-Session auf (dem Session-Cookie des Admins), nicht mit einem API-Token:
BASE_URL="https://uptimeify.io"
curl -X POST "$BASE_URL/api/users/user_123/email-change" \
-H "Cookie: better-auth.session_token=<dein-session-cookie>" \
-H "Content-Type: application/json" \
-d '{"newEmail": "jane.doe@example.com"}'Antwort
{ "ok": true, "pendingEmail": "jane.doe@example.com" }Häufige Fehler
401 unauthorized, wenn du nicht angemeldet bist403 nonUserSessionForbiddenbeim Aufruf mit API-Token oder Agent-Access-Token403 mfa_step_up_required, wenn dein Konto eine Zwei-Schritt-Bestätigung hat und du sie in den letzten fünf Minuten nicht bestätigt hast403 forbidden, wenn du weder Organisations-Admin noch Global Admin bist403 globalUserProtected, wenn das Ziel ein Plattform-Konto ist (Global Admin oder Supporter) und du kein Global Admin bist404 userNotFound, wenn es den Benutzer nicht gibt oder er zu einer anderen Organisation gehört400 userSelfChangeForbidden, wenn:iddein eigener Benutzer ist; ändere deine Adresse im Profil400 emailUnchanged, wenn die neue Adresse die bisherige ist400 emailAlreadyExists, wenn ein anderes Mitglied deiner Organisation die Adresse schon nutzt. Eine Adresse, die einem Konto außerhalb deiner Organisation gehört, wird nicht genannt: die Anfrage antwortet wie bei einer freien Adresse, es geht kein Link raus502 emailSendFailed, wenn der Bestätigungslink nicht versendet werden konnte; die Adresse bleibt unverändert