REST API로 Create-User를 실행했는데 작동하지 않는 것 같습니다

안녕하세요,

REST API를 사용하여 새 사용자를 생성했습니다.

하지만 새 사용자 자격 증명으로 로그인할 수 없습니다. 사용자 테이블을 검색해 보아도 해당 사용자 계정을 찾을 수 없습니다.

문제를 해결하기 위해 다음 CURL 명령을 실행해 보았습니다.

CURL 명령에 JSON 페이로드를 사용하여도 같은 결과를 얻었습니다.

두 경우 모두 동일한 결과가 나옵니다: 새 사용자 자격 증명으로 로그인할 수 없으며, 사용자 테이블에서 새 사용자를 찾을 수 없습니다.

해결 방안이 있으신가요?

감사합니다

여기서 메시지는 다소 오해의 소지가 있습니다. active:false는 사용자가 생성되지 않았지만 이미 존재했음을 의미합니다.

특히 normalize_emails가 활성화된 경우, 동일한 이메일 주소를 가진 사용자가 이미 있는지 확인하십시오.

User creation API: ‘active’ attribute set to True but returns False in response 와 유사해 보입니다.

API 문서에 오류가 있음을 확인했습니다. active 매개변수는 관리자 사용자와 연관된 API 키를 사용할 때만 허용되며, 이것은 2016년부터 해당 사항입니다.

일단, 다음 링크에서 문서를 수정했습니다.

이것은 도움이 되겠네요.

하지만 여전히 관리자 입장에서 메시지가 오해의 소지가 있다는 원래 문제는 해결되지 않았습니다.

○ → 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 내림차순으로 검색하고 있었는데, 그래서 새 사용자가 검색 결과에 나오지 않았던 것입니다.

성공 응답이 오히려 혼란을 주었습니다.

도움 주셔서 감사합니다.