Ich habe einen neuen Benutzer über die REST-API erstellt.
Aber ich kann mich nicht mit den Anmeldedaten des neuen Benutzers anmelden. Wenn ich die Benutzertabelle durchsuche, kann ich das Benutzerkonto nicht finden.
Um das Problem zu beheben, habe ich den folgenden CURL-Befehl ausgeführt.
Ich habe auch versucht, eine JSON-Nutzlast mit dem CURL-Befehl zu verwenden.
Ich erhalte beide Male dasselbe Ergebnis: Ich kann mich nicht mit den Anmeldedaten des neuen Benutzers anmelden und der neue Benutzer wird nicht in der Benutzertabelle gefunden.
Mir ist aufgefallen, dass in unserer API-Dokumentation ein Fehler vorliegt. Der active-Parameter ist nur zulässig, wenn ein API-Schlüssel verwendet wird, der einem Admin-Benutzer zugeordnet ist, und dies ist seit 2016 der Fall.
Es behebt immer noch nicht das ursprüngliche Problem, dass die Nachricht für Administratoren irreführend ist.
○ → curl -X POST -H \"api-key: $API_KEY\" -H 'api-username: michael' https://try.discourse.org/users.json --json \"$(jo email=michael+test@contoso.com username=michaeltest password=$PASSWORD active=true approved=true)\"
{\"success\":true,\"active\":true,\"message\":\"Your account is activated and ready to use.\"}
○ → curl -X POST -H \"api-key: $API_KEY\" -H 'api-username: michael' https://try.discourse.org/users.json --json \"$(jo email=michael+test2@contoso.com username=michaeltest2 password=$PASSWORD active=true approved=true)\"
{\"success\":true,\"active\":false,\"message\":\"Your account is activated and ready to use.\"}
^ Nur ein einziger Benutzer wurde oben erstellt
Ich vermute, dass viele Verschleierungen in den Pfad /users.json eingebaut wurden, um Spammer usw. abzuschrecken, aber dies scheint auch den Administratoren Schwierigkeiten zu bereiten. Ich frage mich, ob wir einen expliziten Admin-Pfad hinzufügen sollten, um die beiden (normale Kontoerstellung vs. Admin-Kontoerstellung) zu trennen, was die Admin-Funktion unobfuscated machen würde.