Especificación de claves de API de usuario

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.

1 me gusta