Ошибка маршрута /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-Key и Api-Username в запросе. Посмотрите пример с curl, который находится в верхней части этой темы: Документация API Discourse. Убедитесь, что для имен полей используется дефис (-), а не нижнее подчеркивание (_). Например, api-key будет работать как имя поля, а api_key — нет.

Это сработало, спасибо.

Если у кого-то еще возникла эта проблема — вот команда 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"