error de ruta /admin/users/1/log_out

Estoy recibiendo este error al intentar cerrar la sesión de un usuario a través del punto final de cierre de sesión SSO, tanto en Postman como en el sitio.

Los registros de producción indican un error de ruta. He verificado dos veces que el nombre de usuario de la API y la clave son correctos. Puedo hacer que el mismo código funcione en el entorno de desarrollo, pero no en producción.

He intentado revocar y volver a crear la clave de la API varias veces sin éxito. He probado tanto colocando los parámetros en el encabezado como enviándolos como parámetros de consulta.

Aquí está la salida del registro de producción:

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”)

¿Se necesita hacer algo especial para que la clave de la API sea detectada en producción?

Debes establecer Api-Key y Api-Username en las cabeceras de la solicitud. Consulta el ejemplo de curl que se encuentra cerca de la parte superior de este tema: Documentación de la API de Discourse. Asegúrate de usar un guion (-) y no un guion bajo (_) para los nombres de los campos. Por ejemplo, api-key funcionará como nombre de campo, pero api_key no funcionará.

2 Me gusta

Eso funcionó, gracias.

Si alguien más tiene este problema, aquí está el comando curl que necesitas para probar:

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 me gusta