Erreur de route /admin/users/1/log_out

Je rencontre cette erreur en tentant de déconnecter un utilisateur via le point de terminaison de déconnexion SSO, à la fois sur Postman et sur le site.

Les journaux de production indiquent une erreur de routage. J’ai vérifié à deux reprises que le nom d’utilisateur et la clé API sont corrects. Je parviens à faire fonctionner le même code dans l’environnement de développement, mais pas en production.

J’ai essayé de révoquer et de recréer la clé API à plusieurs reprises, sans succès. J’ai également essayé de placer les paramètres dans l’en-tête et de les envoyer en tant que paramètres de requête.

Voici la sortie du journal de production :

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

Faut-il effectuer une opération particulière pour que la clé API soit prise en compte en production ?

Vous devez définir les en-têtes de requête Api-Key et Api-Username. Consultez l’exemple curl situé en haut de ce sujet : Documentation de l’API Discourse. Assurez-vous d’utiliser un tiret (-) et non un trait de soulignement (_) pour les noms des champs. Par exemple, api-key fonctionnera comme nom de champ, tandis que api_key ne fonctionnera pas.

2 « J'aime »

Cela a fonctionné, merci.

Si quelqu’un d’autre rencontre ce problème, voici la commande curl nécessaire pour les tests :

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 « J'aime »