我正在尝试使用 Google Apps 脚本的 UrlFetch 访问受 Digest Authentication 保护的 URL。
我设法使用基本身份验证访问 URL:
var options =
{
"method" : "get",
"headers" : {
"Authorization" : "Basic <Base64 of user:password>"
},
};
var response = UrlFetchApp.fetch("http://www.example.com/service/using/basic", options);
我设法根据文档中的示例使用 OAuth 进行访问。
现在的问题是我需要与正在实施 Digest 的站点具有相同的功能。我可以使用以下 curl 访问它:
curl -v --digest --user user:password http://www.example.com/service/using/digest
更新
如果我尝试简单地打电话
var options =
{
"method" : "get",
"headers" : {
"Authorization" : "Digest " + Utilities.base64Encode( Utilities.computeDigest(user:password) )
},
};
由于 Digest Authentication 的 Challenge-Response 机制,它不起作用。
我可以使用任何实现此类功能的 JavaScript 库来使用 UrlFetch 吗?还是直接通过 UrlFetch 本身?