No creo que sea necesario que cada usuario tenga una clave distinta… Una sola clave de administrador debería bastar para lo que necesito.
Puedo consumir la API sin problemas a través de Postman. Por ejemplo, una solicitud GET a /notifications.json?username=alanmurphy devuelve los datos sin inconvenientes, usando únicamente api-key como encabezado.
Si ejecuto esa solicitud desde la consola de una instalación de Discourse, también obtengo los datos sin problemas, es decir:
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();
Todo correcto:+1:
Sin embargo, si lo hago desde el subdominio desde el cual deseo contactar a Discourse, me indica que ha sido bloqueado por la política CORS: El campo de encabezado de solicitud api-key no está permitido por Access-Control-Allow-Headers.
Los encabezados permitidos son:
Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id
Si pudiera recibir orientación sobre qué parámetros de autenticación enviar para solicitudes entre orígenes y dónde obtenerlos, sería de gran ayuda.
PD: Mi instalación de Discourse está configurada para permitir solicitudes entre orígenes desde el dominio, así que creo que el problema es únicamente de encabezados.
Gracias.