我正在尝试使用Google Apps脚本的UrlFetch访问受摘要式身份验证保护的网址。
我设法使用基本身份验证访问URL:
var options =
{
"method" : "get",
"headers" : {
"Authorization" : "Basic <Base64 of user:password>"
},
};
var response = UrlFetchApp.fetch("http://www.example.com/service/using/basic", options);
我设法根据文档中的example访问OAuth。
现在的问题是我需要与正在实施摘要的网站具有相同的功能。我可以使用以下卷曲访问它:
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) )
},
};
由于摘要式身份验证的质询 - 响应机制,它无效。
我可以使用任何实现此类功能的JavaScript库来使用UrlFetch吗?还是直接通过UrlFetch本身?
答案 0 :(得分:1)
HTTP摘要授权比目前为止要复杂得多。查看wiki page或查看此sample Python implementation了解详情。
应该可以使用Henrique提到的Utilities方法,使用Apps脚本实现摘要身份验证。至于处理算法的质询/响应部分,您可以将尚未记录的UrlFetchApp选项muteHttpExceptions
用作shown here。
答案 1 :(得分:0)
有多个Utilities.computeDigest和base64Encode。这可能是你正在寻找的。 p>