Ошибка при попытке авторизации Axios получить запрос - PullRequest
1 голос
/ 14 марта 2019

Я пытаюсь получить доступ к Uber API через Axios, и у меня возникают проблемы. Я подключил эти данные к Почтальону и получил код ответа 200 без проблем. Однако, когда я пытаюсь сделать вызов Axios, я получаю код ответа 401 неавторизованным. Могу ли я получить некоторую помощь, просматривая мой код, чтобы выяснить, почему моя авторизация не работает правильно с Axios?

Вот ссылка на документы Uber API, на которые я ссылаюсь. Справочник по Uber API

getRide_Uber = async (addressOrigin, addressDestination) => {
  let origin = await geocodeAddress(addressOrigin);
  let destination = await geocodeAddress(addressDestination);

  const url = "https://api.uber.com/v1.2/estimates/price";

  const params = {
    params: {
      start_latitude: origin.lat,
      start_longitude: origin.lon,
      end_latitude: destination.lat,
      end_longitude: destination.lon
    }
  };

  const headers = {
    headers: {
      Authorization: `Token ${process.env.UBER_SERVER_TOKEN}`
    }
  };

  const response = await axios
    .get(url, params, headers)
    .then(function(response) {
      data = response.data;
    })
    .catch(function(error) {
      console.log(error);
    });
  return data;
};

Пожалуйста, дайте мне знать, если что-то требует разъяснений. Спасибо!

Ответы [ 2 ]

1 голос
/ 14 марта 2019

попробуйте следующий синтаксис,

  const config = {
    headers: {
      Authorization: `Token ${process.env.UBER_SERVER_TOKEN}`
    } 
    params: {
      start_latitude: origin.lat,
      start_longitude: origin.lon,
      end_latitude: destination.lat,
      end_longitude: destination.lon
    }
  };

  const response = await axios
    .get(url, config)
    .then(function(response) {
      data = response.data;
    })
    .catch(function(error) {
      console.log(error);
    });
  return data;

Существует еще один аспект, который не поддерживается, async / await не поддерживается в Internet Explorer и более старых браузерах.Так что, пожалуйста, проверьте также версии вашего браузера.

0 голосов
/ 14 марта 2019

Не уверен, как вы получаете токен из env, но, похоже, серверный токен не проходит правильно, возможно, несколько лишних символов при чтении из env. Попробуйте сначала запустить программу с жестко закодированным токеном в самой программе, и как только вы убедитесь, что это не проблема кода, вы можете переместить ее в config / env и затем отладить проблему чтения env.

...