Я создаю приложение, которое использует API Caspio. У меня возникли проблемы с аутентификацией их API. Я потратил 2-3 дня, пытаясь понять это, но это может быть из-за некоторого понимания на моем конце. Я прочитал бесчисленные статьи о postoverflow post и в противном случае, но не решил проблему. Ниже приведен пример кода моего решения на основе того, на что я смотрел, и я получаю сообщение с кодом состояния 400; Что я здесь делаю неправильно? (Пожалуйста, укажите пример кода с комментариями, и я предпочел бы, чтобы НЕ имел ссылки, размещенные здесь, ссылаясь на другие материалы, так как я внимательно их рассмотрел. Спасибо!):
Некоторые ссылки, на которые я смотрел:
1) Чистый код JavaScript для базовой аутентификации HTTP?
2) Как сделать проверку подлинности HTTP в REST API вызовом из javascript
Я хотел бы использовать этот метод аутентификации, как описано ниже в caspio:
В качестве альтернативы включению учетных данных в тело запроса клиент может использовать базовую схему аутентификации HTTP. В этом случае запрос аутентификации будет настроен следующим образом:
Метод: POST
URL: Конечная точка маркера
Тело: grant_type = client_credentials
Параметр заголовка:
Авторизация: Основные условия аутентификации
Ниже приведены мои Javascript и HTML-код.
JavaScript:
var userName = "clientID";
var passWord = "secretKey";
function authenticateUser(user, password)
{
var token = user + ":" + password;
// Should i be encoding this value????? does it matter???
// Base64 Encoding -> btoa
var hash = btoa(token);
return "Basic " + hash;
}
function CallWebAPI() {
// New XMLHTTPRequest
var request = new XMLHttpRequest();
request.open("POST", "https://xxx123.caspio.com/oauth/token", false);
request.setRequestHeader("Authorization", authenticateUser(userName, passWord));
request.send();
// view request status
alert(request.status);
response.innerHTML = request.responseText;
}
HTML:
<div>
<div id="response">
</div>
<input type="button" class="btn btn-primary" value="Call Web API" onclick="javascript:CallWebAPI();" />