Fehler bei der Route /admin/users/1/log_out

Ich erhalte diesen Fehler, wenn ich versuche, einen Benutzer über den SSO-Abmelde-Endpunkt abzumelden, sowohl in Postman als auch auf der Website.

Die Produktionsprotokolle melden einen Routing-Fehler. Ich habe die API-Benutzername und den API-Schlüssel bereits mehrfach überprüft. Der gleiche Code funktioniert in der Entwicklungsumgebung, aber nicht in der Produktion.

Ich habe versucht, den API-Schlüssel mehrfach zu widerrufen und neu zu erstellen, ohne Erfolg. Ich habe sowohl versucht, die Parameter im Header zu platzieren, als auch sie als Query-Parameter zu senden.

Hier ist die Ausgabe des Produktionsprotokolls:

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

Muss in der Produktion etwas Besonderes getan werden, damit der API-Schlüssel erkannt wird?

Sie müssen den Api-Key und den Api-Username in den Anfrage-Headern festlegen. Schauen Sie sich das Curl-Beispiel an, das sich oben in diesem Thema befindet: Discourse API-Dokumentation. Stellen Sie sicher, dass Sie für die Feldnamen einen Bindestrich (-) und keinen Unterstrich (_) verwenden. Beispielsweise funktioniert api-key als Feldname, api_key jedoch nicht.

Das hat funktioniert, danke.

Falls jemand anderes dieses Problem hat – hier ist der curl-Befehl, den Sie zum Testen benötigen:

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"