Hallo, ich hoffe, ich kann hier etwas Unterstützung erhalten. Mein SSO funktioniert diese Woche nicht mehr. Ich dachte, ich hätte gestern alles repariert (es hat funktioniert, ich schwöre
Hinweis: Ich habe mir die „Neuen Benutzer“ von gestern und heute angesehen, und an beiden Tagen gab es neue Benutzer (nachdem ich es repariert hatte), jetzt ist es wieder kaputt…). Leider funktionieren die von mir vorgenommenen Änderungen heute nicht.
Problem: Benutzer können keine neuen Konten erstellen, und Benutzer, die sich abmelden, können sich nicht wieder anmelden.
Ich habe festgestellt, dass mein Discourse-Server bei folgenden Routen 400-Fehler meldet:
403: GET : discourse-url/users/by-external/USER-ID.json?
Hinweis: Ich habe kürzlich in der API-Dokumentation festgestellt, dass diese Route nicht existiert? (obwohl sie funktioniert hat). Es sieht so aus, als wäre die Route: https://discourse.example.com/u/by-external/{external_id}.json
404: POST: discourse-url/admin/users/sync_sso?
Der Grund, warum das ?-Zeichen am Ende steht, ist, dass ich in einer Funktion, die URLs generiert, ein optionales Parameterfeld habe. Bei diesen beiden Routen werden alle Daten im Formular-Body oder in den Headern gesendet.
Ich verwende die folgende Bibliothek.
Was ich aktualisiert habe (und was ich dachte, das Problem zu lösen):
Bei allen meinen Anfragen habe ich den Api-Key und den Api-Username als Query-Parameter gesendet. In den letzten Monaten habe ich in meinem Admin-Bereich eine Warnung bemerkt, dass ich veraltete Header in meinen Anfragen verwende. Dieser Link führte mich zu diesem Beitrag, und die wichtigsten Details sind hier:
Veraltungswarnung!
Am 6. April 2020 haben wir die Unterstützung für alle Authentifizierungsmethoden außer HTTP-Headern eingestellt (mit Ausnahme einiger RSS-, E-Mail-Empfangs- und ICS-Routen). Das bedeutet, dass API-Anfragen, dieapi_keyundapi_usernamein den Query-Parametern oder im HTTP-Body enthalten, bald nicht mehr funktionieren werden. Bitte sehen Sie sich das unten stehende cURL-Beispiel an, um Ihre API-Anfragen so zu aktualisieren, dass sie die HTTP-Header zur Authentifizierung verwenden.
Ich habe alle meine Anfragen aktualisiert. Jetzt enthalten alle meine Anfragen den Api-Key und den Api-Username im Header, und der Content-Type ist auf multipart/form-data gesetzt.
Wenn jemand Ratschläge geben kann, worauf ich mich bei der Fehlersuche konzentrieren sollte, wäre ich sehr dankbar. Ich bin zu fast 100 % sicher, dass dies am Ende meines Arbeitstages gestern noch funktioniert hat. Ich konnte mich in mein Konto ein- und ausloggen und neue Konten erstellen.
Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Danke!