Coisa estranha aconteceu ao criar usuário via API

Quando testei a API users.json, usei o Postman para criar um usuário. Funcionou, e ele foi ativado por padrão, ou seja, active=true funcionou.

Mas quando crio um usuário com código em Node.js, com os mesmos parâmetros, active=true não funciona mais. Mesmo assim, recebo uma mensagem de sucesso:

success: true,
active: false,

Como isso é possível? Eu nem vejo isso no backend.

Minha suposição é que seu código em Node.js não está passando a chave da API corretamente, por isso você não tem permissão para sobrescrever o parâmetro active. Se puder compartilhar um trecho do seu código aqui, talvez possamos ajudar.

Olá David, Obrigado:

aqui está minha solicitação:

{
 "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
}

Verifiquei novamente o usuário e a chave da API, estão corretos.

Acabei de envolver uma solicitação POST com o Axios.

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

Não sei muito sobre Node, mas, pelo que consigo ver, parece estar ok.

Uma coisa que você pode tentar é enviar as credenciais da API via cabeçalhos HTTP, em vez de parâmetros. O envio via parâmetros está obsoleto e gerará um aviso no seu painel de administração. Os nomes dos cabeçalhos são Api-Key e Api-Username (observe os hífens, não os sublinhados). Mais informações aqui.

Ótimo, sim! Eu resolvi depois de adicionar Api-Key e Api-Username e incluir 'content-type': 'application/json', no cabeçalho!