/admin/users/1/log_out 라우트 오류

Postman과 사이트 모두에서 SSO 로그아웃 엔드포인트를 통해 사용자를 로그아웃하려고 할 때 이 오류가 발생합니다.

프로덕션 로그에는 라우트 오류가 있다고 나와 있습니다. 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 예시를 확인해 보세요: Discourse API 문서. 필드 이름에는 밑줄(_)이 아닌 대시(-)를 사용해야 합니다. 예를 들어 필드 이름으로 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"