用JavaScript生成OAuth 2.0访问令牌。

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

我试图通过OneLogin的API生成OAuth 2.0令牌。我阅读了他们的 文件 并能够设置Postman进行测试,并成功抓取访问令牌。

然而,当我尝试通过JavaScript fetch来做同样的请求时,却无法成功。

代码是

function getAuthToken() {
  // POST Request (To get Access Token)
  var url = 'https://api.us.onelogin.com/auth/oauth2/v2/token?grant_type=client_credentials' 

  var postOptions = {
    'method': 'POST',
    'headers': {
      'Content-Type': 'application/json; charset=utf-8',
      'Authorization' : 'client_id:xxxx, client_secret:xxxx'
    },
    'redirect': 'follow'
  };
 var authToken = UrlFetchApp.fetch(url, postOptions);
}

错误

Error message

错误信息表明 赠款类型 丢失了,但我通过 赠款类型 参数在POST请求的主体中作为一个字符串(raw),就像文档中要求的那样,但我还是收到了这个错误。我甚至试着写了 '{"grant_type": "client_credentials"}' 与'body'参数并列,但仍然收到同样的错误信息。

有什么办法吗?先谢谢你

api oauth-2.0 access-token urlfetch onelogin
1个回答
0
投票

你使用的是JSON编码的参数。访问令牌请求必须使用以下方式发送表单参数 application/x-www-form-urlencoded 编码。

请看这里的OAuth2标准。https:/tools.ietf.orghtmlrfc6749#section-4.1.3。

© www.soinside.com 2019 - 2024. All rights reserved.