Je ne pense pas que chaque utilisateur ait besoin d’une clé distincte… Une seule clé d’administration devrait suffire à mes besoins.
Je peux consommer l’API sans problème via Postman. Par exemple, une requête GET vers /notifications.json?username=alanmurphy renvoie les données sans problème en utilisant simplement api-key comme en-tête.
Si je déclenche cette requête depuis la console d’une installation Discourse, je reçois également les données sans problème, c’est-à-dire :
var xhr = new XMLHttpRequest();
xhr.addEventListener(“readystatechange”, function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open(“GET”, “https://**********.com/notifications.json?username=alanmurphy”);
xhr.setRequestHeader(“api-key”, “d06ca53322d1fbaf383a6394d6c229e56871342d2cad953a0fe26c19df7645ba”);
xhr.setRequestHeader(“api-userame”, “system”);
xhr.send();
Tout est bon ![]()
Cependant, si je fais cela depuis le sous-domaine à partir duquel je souhaite contacter Discourse, il indique que la requête a été bloquée par la politique CORS : Le champ d’en-tête de requête api-key n’est pas autorisé par Access-Control-Allow-Headers.
Les en-têtes autorisés sont :
Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id
Si vous pouviez simplement me guider sur quels paramètres d’authentification passer pour les requêtes interdomaines et où les obtenir, cela serait très utile.
P.S. Mon Discourse est configuré pour autoriser les requêtes interdomaines depuis le domaine, donc je pense qu’il s’agit purement d’un problème d’en-têtes.
Merci