【发布时间】:2016-04-23 23:35:59
【问题描述】:
我正在构建一个使用Caspio API 的应用程序。我在针对他们的 API 进行身份验证时遇到了一些问题。我花了 2-3 天试图弄清楚这一点,但这可能是由于我的一些理解。我已经阅读了无数关于stackoverflow帖子的文章,但还没有解决这个问题。下面是我的解决方案的代码示例,基于我所查看的内容,我收到了 400 状态代码消息;我在这里做错了什么? (请提供注释良好的代码示例,我希望不在此处发布引用其他材料的链接,因为我已经广泛查看了这些材料。谢谢!):
我看过的一些参考资料:
1)Pure JavaScript code for HTTP Basic Authentication?
2)How to make http authentication in REST API call from javascript
我想使用下面 caspio 描述的这种身份验证方法:
作为在请求正文中包含凭据的替代方法,客户端可以使用 HTTP 基本身份验证方案。在这种情况下,将通过以下方式设置身份验证请求:
方法: POST
网址:您的令牌端点
正文: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();" />
【问题讨论】:
标签: javascript authentication xmlhttprequest