'Missing or duplicate parameters' 在访问令牌响应中

'Missing or duplicate parameters' in Access Token Response

我正在尝试使用 lambda 函数获取 OAuth 访问令牌,但出现以下错误:

data: {
      error: 'invalid_request',
      error_description: 'Missing or duplicate parameters'
    }

这是代码:

var axios = require("axios").default;

exports.handler = async (event) => {

   var options = {
      method: 'POST',
      url: 'https://******/auth/oauth/v2/token',
      headers: {'content-type': 'application/x-www-form-urlencoded'},
      data: {
        grant_type: 'client_credentials',
        client_id: '*********',
        client_secret: '******'
      
      }
    };
    
    try {
      const resp = await axios.request(options);
      console.log(resp.data)
    } catch (err){
      console.error(err);
    }
};

当我尝试 运行 邮递员的请求时,它 returns 有效令牌。

如@derpirscher 所述,我必须使用 'qs' 库正确序列化数据对象。之后我能够成功获取访问令牌。

var axios = require("axios").default;
const qs = require('qs');

exports.handler = async (event) => {

  var data = {
        grant_type: 'client_credentials',
        client_id: '*********',
        client_secret: '************'
  };


   var options = {
      method: 'POST',
      url: 'https://************/auth/oauth/v2/token',
      headers: {'content-type': 'application/x-www-form-urlencoded'},
      data: qs.stringify(data)
    };
    
    try {
      const resp = await axios.request(options);
      console.log(resp.data)
    } catch (err){
      console.error(err);
    }
};