J’ai mis à jour Discourse hier et je reçois toutes les callbacks de l’API avec une erreur. J’ai constaté que le problème venait des en-têtes d’authentification (1), mais en essayant quelques appels, j’obtiens cette erreur :
L'accès à XMLHttpRequest à 'https://mydomain.com/notifications.json?username=admin' depuis l'origine 'https://mydomain.com' a été bloqué par la politique CORS : le champ d'en-tête de requête api-username n'est pas autorisé par Access-Control-Allow-Headers dans la réponse de préflight.
J’utilise Vue et j’ai ajouté api-key et api-username aux en-têtes comme ceci :
Oui, j’ai ajouté le domaine où j’appelle l’API dans les paramètres de Discourse, mais cette erreur concernant le champ api-username, je ne sais pas quand je dois la résoudre.
Tu mets ta clé API system dans du code côté client ?
Cela signifie que n’importe qui peut la récupérer dans ton code JavaScript et l’utiliser pour prendre complètement le contrôle de ton forum.
Toutes les requêtes HTTP Ajax vers Discourse doivent s’appuyer sur une session existante, ou ne pas nécessiter de session du tout.
Dans mon cas, j’utilise SSO avec une application frontend en JavaScript. Puis-je consommer l’API sans utiliser l’interface d’autorisation pour chaque utilisateur ? J’aimerais pouvoir utiliser l’attribut api-username… est-ce possible ?