Запрос поста узла получает статус неавторизованного сервера, но API выборки клиента не - PullRequest
0 голосов
/ 16 февраля 2019

При выполнении следующего запроса на выборку на моем внешнем интерфейсе я получаю желаемые значения type и id.

export const getUserProfile = () => {
  return (
    fetch(
      "https://api.spotify.com/v1/me", {
      headers: {"Authorization": "Bearer " + user_id}
    })
    .then(response => {
      return response.json()
    })
    .then(data => {
      console.log(data.type)
      console.log(data.id)
    })
  )
}

Зная, что вы не можете использовать API выборки в узле, который я использовалпакет npm install request для получения данных на сервере моего узла.

request.post(authOptions, function(error, response, body) {
  var access_token = body.access_token
  let postInfo = {
    url: 'https://api.spotify.com/v1/me',
    headers: {
      "Authoriztion": "Bearer " + access_token
    },
    json: true
  }
  request.post(postInfo, function(error, response, body) {
    const route = body.type
    const current_user_id = body.id
    console.log(body)
    let uri = process.env.FRONTEND_URI || `http://localhost:3000/${route}/${current_user_id}`
    res.redirect(uri + '?access_token=' + access_token)
  })
})

Цель этого состоит в том, чтобы при вызове res.redirect он отправлял клиента на домашнюю страницу пользователя.Однако, когда клиент перенаправляется, URL-адрес http://localhost:3000/undefined/undefined?accesss_token={some token} при поиске, почему значения не определены, я console.log(body), и я получаю

{
  error: { 
    status: 401,
    message: 'No token provided'
  }
}

, но я могу видеть при регистрации ответа, что токен включен

_header: 'POST /v1/me HTTP/1.1\r\nAuthoriztion: Bearer {some token}=\r\nhost: api.spotify.com\r\naccept: application/json\r\ncontent-length: 0\r\nConnection: close\r\n\r\n'

Я могу понять, почему мои значения не определены, но почему я получаю неавторизованный статус в узле, а не на клиенте, используя fetch api?Также я заметил, что URL access_token не соответствует зарегистрированному токену сервера.

Вот документы, которые я использую:

https://www.npmjs.com/package/request

https://developer.spotify.com/documentation/web-api/reference/users-profile/get-current-users-profile/

Файл Github: https://github.com/ryansaam/litphum-server/blob/master/server.js

1 Ответ

0 голосов
/ 16 февраля 2019

Если вы используете node-fetch в коде своего сервера, у вас есть API, похожий на fetch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...