Я не могу запросить токен Oauth 2.0 в javascript

Я делаю запрос на получение токена доступа с помощью Oauth 2.0 в javascript. Документы API используют модуль запроса (устаревший), поэтому я ищу альтернативу. Я пытался использовать fetch и axios, но ни один из них не работает. Вы можете прочитать это из документации.

Если я делаю запрос с помощью axios (код) , он возвращает эту ошибку,

в то время как если я использую fetch (код) , это результат .

По крайней мере, fetch делает вызов успешно, но у меня такое впечатление, что он не может передать параметр auth, потому что ошибка возникает из-за этого.

Кто-нибудь может мне помочь? Я очень ценю это.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
58
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать fetch или axios вместо запроса, но они используют разные атрибуты options по сравнению с request.

С axios это

const options = {
  method: 'POST',
  auth: {
    username: client.id,
    password: client.secret
  },
  headers: { 'content-type': 'application/x-www-form-urlencoded' },
  data: 'grant_type=client_credentials&scope=basic'
};

вместо.

С fetch это

const options = {
  method: 'POST',
  headers: {
    authorization: "Basic " + Buffer.from(client.id + ":" + client.secret).toString("base64"),
    'content-type': 'application/x-www-form-urlencoded'
  },
  body: 'grant_type=client_credentials&scope=basic'
};

Я читаю документацию по API, но так как они используют старые модули, я не знаю, что делать конкретно. Как я уже говорил, они используют модуль запроса. Знаете ли вы, есть ли альтернативы этому модулю?

FlavioBucciarelli 29.12.2022 10:40

Да, именно так, и в документах используется определенная форма запроса (см. первую ссылку, которую я отправил в посте), поэтому я следовал этой форме, но вместо запроса использовал другой модуль. Итак, поскольку эта официальная форма запроса не работает, как мне узнать правильную форму для запроса токена?

FlavioBucciarelli 29.12.2022 11:03

Извините, я не знал, что вы используете поток учетных данных клиента (без взаимодействия с пользователем). Я отредактировал свой ответ, теперь это помогает?

Heiko Theißen 29.12.2022 11:18

Вы можете использовать axios следующим образом:

axios.interceptors.request.use(function (config) {
  // Do something before request is sent
  config[Authentiaction] = "Bearer" + token
  return config;
}, function (error) {
  // Do something with request error
  return Promise.reject(error);
});

Я думаю, это может помочь.

Извините, я не получил код. Как это работает?

FlavioBucciarelli 29.12.2022 11:07

можешь сфотографировать о своей проблеме, может быть, я могу помочь

ChuyenDev 05.01.2023 05:50

Другие вопросы по теме