使用UrlFetch通过Google Apps脚本进行摘要式身份验证

时间:2012-06-12 16:07:54

标签: google-apps-script digest-authentication

我正在尝试使用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本身?

2 个答案:

答案 0 :(得分:1)

HTTP摘要授权比目前为止要复杂得多。查看wiki page或查看此sample Python implementation了解详情。

应该可以使用Henrique提到的Utilities方法,使用Apps脚本实现摘要身份验证。至于处理算法的质询/响应部分,您可以将尚未记录的UrlFetchApp选项muteHttpExceptions用作shown here

答案 1 :(得分:0)

有多个Utilities.computeDigestbase64Encode。这可能是你正在寻找的。

相关问题