Создание пользователя через REST-API, похоже, не работает

Здравствуйте,

Я создал нового пользователя через REST API.

Однако я не могу войти в систему, используя учетные данные этого нового пользователя. При поиске в таблице пользователей я не могу найти учетную запись.

Для устранения проблемы я выполнил следующую команду CURL.

Я также попробовал использовать JSON-нагрузку с командой CURL.

В обоих случаях результат одинаковый: я не могу войти в систему с использованием учетных данных нового пользователя, и новый пользователь не найден в таблице пользователей.

Есть какие-либо идеи?

Спасибо

Сообщение здесь вводит в заблуждение: active:false означает, что пользователь не был создан, а уже существовал.

Проверьте, нет ли уже пользователя с таким же адресом электронной почты, особенно если включена опция normalize_emails.

Кажется, это похоже на User creation API: ‘active’ attribute set to True but returns False in response

Я обнаружил ошибку в нашей документации по API. Параметр active разрешён только при использовании API-ключа, связанного с пользователем-администратором, и это правило действует с 2016 года (SECURITY: Avoid mass assignment on user create · discourse/discourse@429f27e · GitHub).

На данный момент я исправил документацию в

Это должно помочь, да.

Однако это всё ещё не решает исходную проблему: сообщение вводит администраторов в заблуждение.

○ → 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."}

^ выше был создан только один пользователь

Я предполагаю, что в путь /users.json было намеренно добавлено множество усложнений, чтобы отпугнуть спамеров и т. п., но это, похоже, затрудняет работу и администраторам. Интересно, не стоит ли нам добавить отдельный явный путь для администраторов, чтобы разделить два процесса (создание обычных учётных записей и создание учётных записей администраторов), что позволит убрать усложнения для функции администратора.

Вы правы. Это была проблема: пользователь с таким же адресом электронной почты уже существует.

Я искал по имени пользователя и по дате создания в порядке убывания (created_at desc), поэтому новый пользователь не появился в результатах поиска.

Успешный ответ сбил меня с толку.

Спасибо за вашу помощь.