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



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать 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'
};
Да, именно так, и в документах используется определенная форма запроса (см. первую ссылку, которую я отправил в посте), поэтому я следовал этой форме, но вместо запроса использовал другой модуль. Итак, поскольку эта официальная форма запроса не работает, как мне узнать правильную форму для запроса токена?
Извините, я не знал, что вы используете поток учетных данных клиента (без взаимодействия с пользователем). Я отредактировал свой ответ, теперь это помогает?
Вы можете использовать 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);
});
Я думаю, это может помочь.
Извините, я не получил код. Как это работает?
можешь сфотографировать о своей проблеме, может быть, я могу помочь
Я читаю документацию по API, но так как они используют старые модули, я не знаю, что делать конкретно. Как я уже говорил, они используют модуль запроса. Знаете ли вы, есть ли альтернативы этому модулю?