Я не думаю, что каждому пользователю нужен отдельный ключ… Мне достаточно одного административного ключа.
Я без проблем могу использовать API через Postman. Например, GET-запрос к /notifications.json?username=alanmurphy возвращает данные без проблем, используя только заголовок api-key.
Если я запускаю этот запрос из консоли установки Discourse, данные также возвращаются без проблем, то есть:
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();
Всё отлично:+1:
Однако, если я делаю это из поддомена, с которого планирую обращаться к Discourse, система сообщает, что запрос заблокирован политикой CORS: поле заголовка api-key не разрешено Access-Control-Allow-Headers.
Разрешённые заголовки:
Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id
Если бы вы могли подсказать, какие параметры аутентификации передавать для междоменных запросов и где их получить, это было бы очень полезно.
P.S. Мой Discourse настроен на разрешение междоменных запросов с этого домена, поэтому, полагаю, проблема исключительно в заголовках.
Спасибо.