Non penso che ogni utente debba avere una chiave separata… Dovrebbe bastare una sola chiave amministrativa per le mie esigenze.
Posso utilizzare l’API senza problemi tramite Postman. Ad esempio, una richiesta GET a /notifications.json?username=alanmurphy restituisce i dati correttamente usando solo api-key come header.
Se provo a eseguire quella richiesta dalla console di un’installazione Discourse, ottengo comunque i dati senza problemi, ovvero:
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();
Tutto a posto:+1:
Tuttavia, se provo a farlo dal sottodominio da cui desidero contattare Discourse, mi viene segnalato che la richiesta è bloccata dalla policy CORS: il campo dell’header api-key non è consentito da Access-Control-Allow-Headers.
Gli header consentiti sono:
Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id
Se potessi ricevere indicazioni su quali parametri di autenticazione passare per le richieste cross-origin e dove ottenerli, sarebbe molto utile.
Ps. Il mio Discourse è configurato per consentire richieste cross-origin dal dominio, quindi credo che il problema riguardi esclusivamente gli header.
Grazie