Buduję aplikację, która zużywa Caspio API. Mam problem z uwierzytelnianiem ich interfejsu API. Spędziłem 2-3 dni próbując to zrozumieć, ale może to wynikać z pewnego zrozumienia po mojej stronie. Czytałem niezliczone artykuły na temat stackoverflow i poza tym, ale nie rozwiązałem problemu. Poniżej znajduje się przykładowy kod mojego rozwiązania w oparciu o to, na co patrzyłem i otrzymuję komunikat o kodzie statusu 400; Co ja tu robię źle? (Proszę podać dobrze skomentowany przykład kodu i woleliby NIE linki zamieszczone tutaj odnośniki do innych materiałów, jak mam spojrzał na obszernie tych dzięki.!):Podstawowe uwierzytelnianie za pomocą JavaScript
Niektóre referencje Mam spojrzał na:
1) Pure JavaScript code for HTTP Basic Authentication?
2) How to make http authentication in REST API call from javascript
ja jak używać tej metody uwierzytelniania, jak opisano w caspio poniżej:
Jako alternatywę dla włączania poświadczeń w treści żądania, klient może korzystać ze schematu uwierzytelniania HTTP Basic. W tym przypadku żądanie uwierzytelnienia będzie ustawione w następujący sposób:
Metoda: POST
URL: token końcowym
ciała: grant_type = client_credentials
parametr Header:
odpowiedzialny: Podstawowe uwierzytelnianie podstawowe sfery
Poniżej mój kod JavaScript i 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();" />