「Create-User」REST-API経由で動作しないようです

こんにちは。

REST API を使用して新しいユーザーを作成しました。

しかし、新しいユーザーの認証情報でログインできません。ユーザーテーブルを検索しても、ユーザーアカウントが見つかりません。

問題をトラブルシューティングするために、次の CURL コマンドを実行しました。

CURL コマンドで JSON ペイロードを使用することも試しました。

どちらの場合も同じ結果が得られました。新しいユーザーの認証情報でログインできず、ユーザーテーブルに新しいユーザーが見つかりません。

何かアイデアはありますか?

ありがとうございます。

ここのメッセージは少し誤解を招く可能性があります。active:false は、ユーザーが作成されなかったことを示しますが、既に存在していたことを意味します。

normalize_emails が有効になっている場合、同じメールアドレスを持つユーザーが既に存在しないか確認してください。

「いいね!」 3

User creation API: ‘active’ attribute set to True but returns False in response と似ているようです。

「いいね!」 4

APIドキュメントに誤りがあることに気づきました。active パラメータは、管理ユーザーに関連付けられたAPIキーが使用されている場合にのみ許可され、2016年からそのようになっています

現時点では、ドキュメントを修正しました。

「いいね!」 4

これで役立つはずです。

しかし、管理者にとってメッセージが誤解を招くという元の問題は解決されていません。

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

^ 上記ではユーザーが1人しか作成されていません。

/users.json パスには、スパマーなどを抑止するために多くの難読化が施されていると推測しますが、管理者にとっても困難になっているようです。通常のユーザー作成と管理者が行うユーザー作成を分離するために、明示的な管理者パスを追加することを検討すべきでしょうか。これにより、管理機能の難読化を解除できるようになります。

「いいね!」 1

おっしゃる通りです。問題は「同じメールアドレスを持つユーザーが既に存在していました」でした。

ユーザー名と created_at desc で検索していたため、新しいユーザーが検索結果に表示されませんでした。

成功したレスポンスに惑わされていました。

ご協力ありがとうございました。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.