Especificação das chaves de API do usuário

Não acredito que cada usuário precise de uma chave separada… Uma única chave de administrador deve atender ao que preciso.

Posso consumir a API sem problemas pelo Postman. Por exemplo, um GET para /notifications.json?username=alanmurphy retorna os dados corretamente usando apenas api-key como cabeçalho.

Se eu disparar essa solicitação do console de uma instalação do Discourse, também recebo os dados sem problemas, ou seja:

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();

Tudo certo:+1:

No entanto, se eu fizer isso a partir do subdomínio de onde pretendo contatar o Discourse, ele informa que foi bloqueado pela política CORS: O campo de cabeçalho da solicitação api-key não é permitido por Access-Control-Allow-Headers.

Os cabeçalhos permitidos são:

Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id

Se pudesse receber orientação sobre quais parâmetros de autenticação passar para solicitações entre origens diferentes e onde obtê-los, seria muito útil.

P.S.: Meu Discourse está configurado para permitir solicitações entre origens diferentes a partir do domínio, então acredito que seja puramente uma questão de cabeçalhos.

Obrigado.

1 curtida