ich habe einen von einem Administrator ausgestellten API-Schlüssel mit den Berechtigungen write, read und read lists generiert. Wenn ich jedoch versuche, den Schlüssel zu verwenden (indem ich ihn im Header Api-Key hinzufüge), um auf den Endpunkt {{localhost}}/posts.json zuzugreifen, erhalte ich folgende Fehlermeldung:
"errors": [
"Sie sind nicht berechtigt, die angeforderte Ressource anzuzeigen. Der API-Benutzername oder -Schlüssel ist ungültig."
],
"error_type": "invalid_access"
}
Andererseits gewährt mir die Generierung eines globalen Schlüssels Zugriff auf den Endpunkt. Welcher ist der korrekte (minimale) Geltungsbereich zum Lesen von {{localhost}}/posts.json?
Ich habe dies noch nicht getestet, aber ich denke, dass das, was du siehst, das erwartete Verhalten ist. Du kannst auf die Anker-Schaltfläche klicken, die neben jedem Geltungsbereich des API-Schlüssels angezeigt wird, um zu sehen, auf welche Pfade der Geltungsbereich Zugriff gewährt. Du wirst sehen, dass der Geltungsbereich read nur auf Routen angewendet wird, die mit /t beginnen. Der Geltungsbereich read lists gewährt dir Zugriff auf die Discourse-Themenlisten. Es gibt keinen Geltungsbereich, der speziell den Zugriff auf /posts.json erlaubt, daher sieht es so aus, als müsstest du dafür einen globalen Schlüssel verwenden.
Ich frage mich, ob es sinnvoll wäre, /posts.json zum Geltungsbereich read hinzuzufügen.
Hallo Simon! Vielen Dank für die Antwort und die Erklärung. Für meinen Anwendungsfall muss ich die Beiträge aus /posts.json lesen, möchte aber gleichzeitig so wenig wie möglich eingreifen und nur Lesezugriff anfordern. Gibt es einen Workaround?
Wenn du nur nach öffentlichen Beiträgen abfragst, könntest du eine nicht authentifizierte API-Anfrage an /posts.json stellen. Wenn deine Seite privat ist oder die Beiträge in geschützten Kategorien liegen, ist meiner Einschätzung nach derzeit nur mit einem globalen API-Schlüssel möglich, die Beiträge abzurufen.