Я создаю приложение, которое потребляет Caspio API. У меня возникли проблемы с аутентификацией их API. Я потратил 2-3 дня, пытаясь понять это, но это может быть из-за некоторого понимания на моем конце. Я прочитал бесчисленные статьи о postoverflow post и в противном случае, но не решил проблему. Ниже приведен пример кода моего решения на основе того, на что я смотрел, и я получаю сообщение с кодом состояния 400; Что я здесь делаю неправильно? (Пожалуйста, предоставьте также комментировал пример кода, и я предпочел бы НЕ есть ссылки, размещенные здесь, ссылающиеся другой материал, как я смотрел на это обширно спасибо.!):Основная проверка подлинности с использованием JavaScript
Некоторых ссылки я посмотрел на:
1) Pure JavaScript code for HTTP Basic Authentication?
2) How to make http authentication in REST API call from 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();" />