Странное событие произошло при создании пользователя через API

Когда я тестирую API users.json, я использую Postman для создания пользователя, и это работает — пользователь по умолчанию активен, то есть active=true срабатывает.

Однако при создании пользователя с помощью кода на Node.js с теми же параметрами active=true больше не работает, хотя я получаю сообщение об успехе:

success: true,
active: false,

Как это возможно? Я даже не вижу этого на бэкенде.

Я полагаю, что ваш код на Node.js неправильно передает ключ API, из-за чего вы не можете переопределить параметр active. Если вы сможете поделиться фрагментом своего кода здесь, мы, возможно, сможем помочь.

Привет, Дэвид, спасибо:

вот мой запрос:

{
 "url": "users.json",
 "method": "post",
 "data": {
      "api_key": "57d06a163190ee90de1118ac2adbaf5eeb5aa93d4d02dbe8f5d424c388f126e294c",
      "api_username": "Nathan001",
      "name": "tokgood",
      "email": "tokgood@qq.com",
      "password": "64c6457d-b815-4e87-8ea1-e66becd710bc",
      "username": "2cx9pyCMyn",
      "active": true,
      "approved": true
 },
 "headers": {
      "common": {
           "Accept": "application/json, text/plain, */*"
      },
      "delete": {},
      "get": {},
      "head": {},
      "post": {
           "Content-Type": "application/x-www-form-urlencoded"
      },
      "put": {
           "Content-Type": "application/x-www-form-urlencoded"
      },
      "patch": {
           "Content-Type": "application/x-www-form-urlencoded"
      },
      "content-type": "multipart/form-data"
 },
 "baseURL": "https://www.tuntry.com/",
 "transformRequest": [
      null
 ],
 "transformResponse": [
      null
 ],
 "timeout": 60000,
 "xsrfCookieName": "XSRF-TOKEN",
 "xsrfHeaderName": "X-XSRF-TOKEN",
 "maxContentLength": -1
}

Я дважды проверил пользователя API и ключ — всё верно.

Я просто обернул POST-запрос в Axios.

   const post = (url, data) => service.post(url, {
   api_key: Config.discourse.api_key,
   api_username: Config.discourse.api_username,
  ...data,
 }
)

Я не очень хорошо разбираюсь в Node, но, насколько я могу судить, всё выглядит нормально.

Один из вариантов — передавать учётные данные API через заголовки HTTP, а не через параметры. Передача через параметры устарела и вызовет предупреждение в вашей панели администратора. Названия заголовков: Api-Key и Api-Username (обратите внимание на дефисы, а не подчёркивания). Дополнительную информацию можно найти здесь.

Отличный человек! Да, я решил проблему, добавив Api-Key и Api-Username, а также 'content-type': 'application/json', в заголовки!