有没有办法更改 Postman OAuth 2 客户端凭据请求的内容类型?

Posted

技术标签:

【中文标题】有没有办法更改 Postman OAuth 2 客户端凭据请求的内容类型?【英文标题】:Is there a way to change the Content Type for a Postman OAuth 2 Client Credentials request? 【发布时间】:2021-04-12 10:42:38 【问题描述】:

我正在尝试使用内置工具为我的请求获取 OAuth 2.0 令牌。在阅读文档时,这似乎很简单,我将其设置如下:

问题是令牌请求是使用application/x-www-form-urlencoded 的内容类型发送的。所以我从服务器得到的响应是 415 Unsupported Media Type 我看不到将请求内容类型更改为 application/json 的方法。

我是否遗漏了什么或者是创建自定义预请求脚本的唯一方法?

【问题讨论】:

【参考方案1】:

https://github.com/oauthjs/node-oauth2-server/issues/92

application/x-www-form-urlencoded ,是 Oauth 支持的内容类型

https://www.rfc-editor.org/rfc/rfc6749#section-4.1.3

如果要创建,可以使用先决条件脚本,例如:

https://gist.github.com/madebysid/b57985b0649d3407a7aa9de1bd327990

// Refresh the access token and set it into environment variable
pm.sendRequest(
    url:  pm.collectionVariables.get("zoho_accounts_endpoint") + "/oauth/v2/token", 
    method: 'POST',
    header: 
        'Accept': 'application/json',
        'Content-Type': 'application/x-www-form-urlencoded',
    ,
    body: 
        mode: 'urlencoded',
        urlencoded: [
            key: "client_id", value: pm.collectionVariables.get("zoho_client_id"), disabled: false,
            key: "client_secret", value: pm.collectionVariables.get("zoho_client_secret"), disabled: false,
            key: "refresh_token", value: pm.collectionVariables.get("zoho_refresh_token"), disabled: false,
            key: "grant_type", value: 'refresh_token', disabled: false
        ]
    
, function (err, res) 
    pm.collectionVariables.set("zoho_access_token", 'Zoho-oauthtoken ' + res.json().access_token);
);

将其更改为 JSON 或您想要的任何内容,并将值存储到变量中并将其用作承载 token

【讨论】:

我猜答案实际上是:No, you can't because that would be against the understood spec. 编辑:谢谢,顺便说一句。我不知道这个。

以上是关于有没有办法更改 Postman OAuth 2 客户端凭据请求的内容类型?的主要内容,如果未能解决你的问题,请参考以下文章

无法在POSTMan上获取Google oAuth 2令牌

Postman-OAuth 2.0授权

无法在 POSTMan 上获取 Google oAuth 2 令牌

如何在预请求脚本中更改 Postman 环境?

如何在 Postman 集合中保留 OAuth2 令牌(或使用刷新令牌)?

使用Postman访问OAuth2保护的WebAPI