Ich habe Discourse gestern aktualisiert und erhalte bei allen API-Rückrufen einen Fehler. Ich habe herausgefunden, dass das Problem in den Authentifizierungs-Headern liegt (1). Bei einigen Testaufrufen erhalte ich jedoch diesen Fehler:
Zugriff auf XMLHttpRequest an 'https://mydomain.com/notifications.json?username=admin' von der Herkunft 'https://mydomain.com' wurde durch die CORS-Richtlinie blockiert: Das Anforderungs-Header-Feld api-username ist in der Preflight-Antwort von Access-Control-Allow-Headers nicht erlaubt.
Ich verwende Vue und habe den api-key und api-username wie folgt zu den Headern hinzugefügt:
Ja, ich habe die Domain, von der aus ich die API aufrufe, in den Discourse-Einstellungen hinzugefügt, aber bei dem Fehler mit dem Feld api-username weiß ich nicht, wann ich ihn beheben muss.
Du gibst deinen system-API-Schlüssel im Client-Code an?
Das bedeutet, dass jeder ihn aus deinem JavaScript-Code entnehmen und verwenden kann, um dein Forum komplett zu übernehmen.
Alle Ajax-HTTP-Anfragen an Discourse sollten eine bestehende Sitzung nutzen oder gar keine Sitzung benötigen.
In meinem Fall habe ich SSO mit einer Frontend-App in JavaScript. Könnte ich die API nutzen, ohne für jeden Benutzer die Autorisierungs-UI verwenden zu müssen? Ich würde gerne eine Möglichkeit haben, die api-username zu verwenden … ist das möglich?