/admin/users/1/log_out ルートのエラー

SSO ログアウトエンドポイントを使用してユーザーをログアウトさせようとした際、Postman とサイトの両方でこのエラーが発生しています。

本番環境のログにはルートエラーが記録されています。API ユーザー名とキーが正しいことは二度確認済みですが、開発環境では同じコードが動作するのに対し、本番環境では動作しません。

API キーを無効化して再作成することを何度か試みましたが、効果はありませんでした。パラメータをヘッダーに含める方法と、クエリパラメータとして送信する方法の両方を試しました。

以下は本番環境のログ出力です。

Started POST “/admin/users/2/log_out?api_username=dev&api_key=[FILTERED]” for 73.71.125.29 at 2020-05-26 01:37:17 +0000
ActionController::RoutingError (No route matches [POST] “/admin/users/2/log_out”)

本番環境で API キーが認識されるようにするために、特別な設定が必要でしょうか?

リクエストヘッダーに Api-KeyApi-Username を設定する必要があります。このトピックの上部にある curl の例をご覧ください:Discourse API ドキュメント。フィールド名にはアンダースコア(_)ではなくダッシュ(-)を使用してください。例えば、api-key はフィールド名として機能しますが、api_key は機能しません。

「いいね!」 2

それでうまくいきました、ありがとうございます。

もし他にもこの問題に直面している方がいたら、テストに必要な curl コマンドは以下の通りです:

curl -X POST "http://localhost:3000/admin/users/1/log_out" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: [FILTERED]" \
-H "Api-Username: system"
「いいね!」 1