comodo api 身份验证适用于邮递员,但不适用于 google apps 脚本

问题描述 投票:0回答:0

我正在尝试使用 他们的文档通过他们的 API 对 comodo 平台(合作伙伴门户)进行身份验证。 据我了解,我需要使用用户/通行证进行身份验证才能获得不记名令牌,以便我可以使用他们的 API 端点 问题是,虽然我可以通过邮递员或他们的 swagger-ui 页面甚至他们的网络合作伙伴门户获得身份验证并获取不记名令牌,但我无法通过他们的 API 获得简单的 Google 应用脚本来执行相同的操作。

comodo 的文档显示了这个curl 命令

curl -k -X POST https://partner.cwatch.comodo.com/login -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -d '{"username":"myuser","password":"mypass" }'

这是我在导入上面的curl命令时从Postman获得的JavaScript代码(运行良好):

var myHeaders = new Headers();
myHeaders.append("Cache-Control", "no-cache");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "username": "myuser",
  "password": "mypass"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://partner.cwatch.comodo.com/login", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

我将其翻译为 Google 应用程序脚本,如下所示:

function getAuthorizationBearerToken() {
  var url = "https://partner.cwatch.comodo.com/login"
  
  var myHeaders = {
    'Cache-Control': 'no-cache',
    'Content-Type': 'application/json'
  };

  var raw = JSON.stringify({
    "username": "myuser",
    "password": "mypass"
  });

  var requestOptions = {
    method: 'POST',
    headers: myHeaders,
    body: raw,
    redirect: 'follow',
    muteHttpExceptions: true
  };

  var response = UrlFetchApp.fetch(url, requestOptions)
    Logger.log(response.getContentText())
}

问题是,在我的 Google 应用程序脚本中,我得到的响应是:

{"path":"/login","code":{"code":"E13000","message":"失败消息: {1}"},"message":"失败消息: 登录参数无效!请提供有效的用户名(或电子邮件)和密码。","error":"未经授权","timestamp":1691083985106,"status":401}

在他们的页面上,E13000 代码指的是“JWT Login Filter”,我不知道那是什么。 我的猜测是,不知何故,我通过脚本发送的用户/通行证没有以正确的方式发送到可以被 comodo 视为有效身份验证的程度。

google-apps-script postman basic-authentication bearer-token
© www.soinside.com 2019 - 2024. All rights reserved.