OAuth2: как получить токен? - PullRequest
       11

OAuth2: как получить токен?

0 голосов
/ 12 октября 2018

Я получаю эту ошибку

RequestError: Ошибка: Ошибка аргумента, options.body

после отправки запроса.Я видел это в API:

grant_type = partner
partner_id = partner id
partner_secret = partner secret

Это исходный код:

getToken() {
  let data = {
    grant_type: 'partner',
    partner_id: config.id,
    partner_secret: config.secret,
  };
  const url = config.url;
  return this.postRequest(url, data)
    .then((result) => {
      console.log(result);
      if (result) {
        console.log(result);
        return result;
      }
    })
    .catch((err) => console.log(err));
}

postRequest(url, data) {
  const options = {
    uri: url,
    method: 'POST',
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    body: data,
  };
  return request(options);
}

Этот код должен возвращать токен, подобный следующему:

{
   "access_token":"2YotnFZFEjr1zCsicMWpAA",
   "token_type":"bearer",
   "expires_in":1119,
   "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA" 
}

Что не так с кодом?

1 Ответ

0 голосов
/ 12 октября 2018

Данные должны быть строкой запроса!

  getToken() {
    let data = {
      grant_type: 'partner',
      partner_id: 'config.id',
      partner_secret: 'config.secret',
    };
    data = querystring.stringify(data);
    const url = config.url;
    return this.postRequest(url, data)
      .then((result) => {
      if (result) {
        console.log(result);
        return result;
      }
      })
      .catch((err) => console.log(err));
  }
...