Member 14963503 Ответов: 0

Как получить access_token с помощью POST и использовать его для запроса GET в nodejs


Попытка получить данные access_token из `token--url` и использовать их для запроса GET для извлечения данных RESTapi другого приложения(которое не разработано мной. Токен, который мы получаем с помощью метода POST, будет использоваться для получения доступа для извлечения данных RESTapi с помощью метода GET), а также необходимо использовать токен обновления после истечения срока действия access_token автоматически.

Данные токена будут выглядеть следующим образом:
{
    "scope": "abcdefg",
    "access_token": "adq3e3e2d23e23",
    "refresh_token": "dwned323en232je",
    "expires_in": 1799,
    "token_type": "Bearer"
}


Что я уже пробовал:

function Post() {
  var urHeaders = new Headers();
  urHeaders.append("API-version", "2");
  urHeaders.append("Accept", "application/json");
  urHeaders.append("Content-Type", "application/x-www-form-urlencoded");
  urHeaders.append("Authorization", "Basic <wwww>");

var raw = "grant_type=password&username=name@yyy.com&password=xyz";

var requestOptions = {
  method: 'POST',
  headers: urHeaders,
  body: raw,
  redirect: 'follow'
};

const first = fetch("https://<--url-->/oauth2/token", requestOptions)
const second = first.then(response => response.json())
return second;
}
var token = Post().then((data) => {
  console.log('This is your data', data)})
function Test() {
  var myHeaders = new Headers();
  myHeaders.append("Content-Type", "application/json");
  myHeaders.append("Authorization", `Bearer ${token.then((data)=>{data.access_token})}`);
  var requestOptions = {
    method: 'GET',
    headers: myHeaders,
    redirect: 'follow'
  };
  const promise  =  fetch("https://<--url--towhich--access_token--is--passed>", requestOptions)

  const data =  promise.then(response => response.json())
 
  return data;
}
export let use = Test();
export default (req, res) => {
  res.statusCode = 200 
  use.then(data => {
      res.json(JSON.stringify(data))
  })
  .catch(err => console.log(err)) 
}

0 Ответов