使用javascript进行摘要访问身份验证

时间:2014-09-17 20:20:11

标签: javascript api authentication

我试图在javascript中使用cloudapp api,问题是api正在使用摘要访问身份验证进行身份验证。 我访问了应用documentation,但没有javascript的示例或包装。 我尝试了很多东西,但这是我最新的代码:

$.ajax({
    headers: { "Accept": "application/json"},
    type: "GET",
    url: "http://my.cl.ly/account",
    crossDomain: true,
    success:function(data, textStatus, request){
        console.log(data);
    }
});

所有我使用此代码的是跨源资源共享(CORS)问题和401 Unauthorized错误。 这是响应标题:

Cache-Control   no-cache
Connection  keep-alive
Content-Type    text/plain; charset=utf-8
Date    Wed, 17 Sep 2014 20:15:26 GMT
Transfer-Encoding   chunked
WWW-Authenticate    Digest realm="Application", qop="auth", algorithm=MD5, nonce="MTQxMDk4NDkyNjo4MmE4ZWU0ZDY4YWUwYTAyMjRjNzIzYWU2NzE5YTQyMQ==", opaque="9eb56ccb2e8b017ae42bdb4739690863"
X-Request-Id    b6bdbf12-f1d9-4769-a06d-216d5d7ae669
X-Runtime   0.008105
status  401 Unauthorized
x-ua-compatible IE=Edge,chrome=1

那么如何使用WWW-Authenticate来验证和检索数据?

我也尝试添加

xhrFields: {
            withCredentials: true
        }

我得到了一个承诺,我填写了它,现在我获得了200 OK状态,但没有回应。 我所需要的只是让这个工作得到回报。 感谢。

1 个答案:

答案 0 :(得分:0)

您似乎正在使用摘要式访问身份验证算法。在第一次请求时获取401是算法的一部分,您必须完全实现它。在WWW-Authenticate标题中,您已获得所有必填字段。我希望这会对你有所帮助:

http://en.wikipedia.org/wiki/Digest_access_authentication What is digest authentication?