Запрос TokenURL в Node.jsJavascript

Форум по Javascript
Anonymous
Запрос TokenURL в Node.js

Сообщение Anonymous »

Я пытаюсь сделать запрос на завершение процесса OAuth для Bungie API, следуя их документации.
Для начала вам необходимо создать ссылку авторизации для пользователя, используя ваш Идентификатор клиента приложения:

Код: Выделить всё

const crypto = require('crypto');

const clientID = process.env.BNG_CLIENT_ID;
const authURL = 'https://www.bungie.net/en/oauth/authorize';

// Create authorization link.
const authState = crypto.randomBytes(20).toString('hex');
console.log(`${authURL}?client_id=${clientID}&response_type=code&state=${authState}`);
Ссылка авторизации, кажется, работает нормально, а затем перенаправляет пользователя на ранее указанную ссылку, за исключением того, что теперь у нее есть дополнительный параметр запроса, который дает вам код авторизации, который вам нужно запросить. токен доступа.
Здесь я застрял:

Код: Выделить всё

const clientSecret = process.env.BNG_CLIENT_SECRET;
const tokenURL = 'https://www.bungie.net/platform/app/oauth/token';
const authCode = 'The authentication code :)';

fetch(tokenURL, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `Basic ${btoa(`${clientID}:${clientSecret}`)}`
},
body: new URLSearchParams({
'client_id': clientID,
'grant_type': 'authorization_code',
'code': authCode
}).toString()
}).then(res => {
console.log(res);
return res.json();
});
Это текущее состояние моего кода, этот запрос возвращает статус 400 (неверный запрос). Другие вещи, которые я пробовал, возвращали статус 401 (Неавторизованный), но это практически то же самое.
Уже пробовал использовать client_id и client_secret в качестве параметра запроса. непосредственно в строку вместо использования заголовка Authorization, то же самое.

Подробнее здесь: https://stackoverflow.com/questions/793 ... in-node-js

Вернуться в «Javascript»