grant_type требуется ошибка invalid_request - PullRequest
0 голосов
/ 05 мая 2020

Я всегда получал «grant_type is required error invalid_request» со следующим JS скриптом, и я не знаю, почему:

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

1 Ответ

0 голосов
/ 05 мая 2020

Для тех, кто заинтересован в решении этой проблемы, см. Следующий код, который практически является ответом Дэнни Дайтона в приведенных выше комментариях.

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 })
});
...