【问题标题】:grant_type is required error invalid_requestgrant_type 是必需的错误 invalid_request
【发布时间】:2020-05-05 21:48:00
【问题描述】:

我总是在下面的 JS 脚本中得到“grant_type is required error invalid_request”,我不知道为什么:

let tokenUrl = 'myTokenURL';
let clientId = 'myClientID';
let clientSecret = 'myClientSecret';
let scope = 'myScope';

let getTokenRequest = {
    method: 'POST',
    url: tokenUrl,
    auth: {
        type: "basic",
        basic: [
            { key: "username", value: clientId },
            { key: "password", value: clientSecret }
        ]
    },
    header: {
        'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: {
        mode: 'formdata',
        formdata: [
            { key: "grant_type", value: "authorization_code" },
            { key: 'scope', value: scope },
            { key: 'redirect_uri', value: 'MyRedirectURI' },
            { key: 'client_id', value: clientId},
            { key: 'clientSecret', value: clientSecret},
        ]
    }
};


pm.sendRequest(getTokenRequest, (err, response) => {
    let jsonResponse = jsonResponse = response.json();;    
    let newAccessToken = jsonResponse.access_token;

    console.log({ err, jsonResponse, newAccessToken })
});

这是使用 Postman sendRequest 函数

【问题讨论】:

  • 如果您使用该标头,mode 是否会被“urlencoded”并且这也是数组的关键?
  • @DannyDainton 非常感谢,这就是我正在寻找的答案 ;)

标签: javascript post oauth-2.0 postman request-headers


【解决方案1】:

对于所有对此解决方案感兴趣的人,请查看以下代码,这实际上是 Danny Daiton 在上述 cmets 中的答案

let tokenUrl = 'myTokenURL';
let clientId = 'myClientID';
let clientSecret = 'myClientSecret';
let scope = 'myScope';

let getTokenRequest = {
    method: 'POST',
    url: tokenUrl,
    auth: {
        type: "basic",
        basic: [
            { key: "username", value: clientId },
            { key: "password", value: clientSecret }
        ]
    },
    header: {
        'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: {
        mode: 'urlencoded',
        urlencoded: [
            { key: "grant_type", value: "authorization_code" },
            { key: 'scope', value: scope },
            { key: 'redirect_uri', value: 'MyRedirectURI' },
            { key: 'client_id', value: clientId},
            { key: 'clientSecret', value: clientSecret},
        ]
    }
};


pm.sendRequest(getTokenRequest, (err, response) => {
    let jsonResponse = jsonResponse = response.json();;    
    let newAccessToken = jsonResponse.access_token;

    console.log({ err, jsonResponse, newAccessToken })
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2014-09-04
    • 2021-05-13
    • 2017-12-09
    • 2014-09-10
    • 2018-05-16
    • 1970-01-01
    • 2017-12-01
    相关资源
    最近更新 更多