Как я могу разрешить сообщение «Токен не предоставлен» в React? - PullRequest
0 голосов
/ 22 мая 2019

(Новое в React) У меня возникли некоторые проблемы с частью авторизации spotify api в моем веб-приложении. Токен не обновляется, и отображается 401 error.

Цель - показать информацию о некоторых артистах. Когда вы нажимаете на имя исполнителя, приложение просит вас войти в систему, а затем перенаправляет вас на страницу, которая содержит информацию. Но токен работает только в течение определенного периода времени, когда он истекает, он должен попросить пользователя снова войти в систему

Callback.js:

    componentDidMount () {
        const token = localStorage.getItem('token')
        let expires = localStorage.getItem('expires')

    if (!token || (expires && new Date().getTime() > new Date(expires).getTime())) {

      window.location.replace(`https://accounts.spotify.com/authorize?client_id=c2f9f5a873274c43a6eadd0076111423&response_type=token&redirect_uri=http://localhost:3000/callback&state=${this.state.id}`)
    }

    fetch(`https://api.spotify.com/v1/artists/${this.state.id}`, {
      headers: {
        'Authorization': `Bearer ${token}`
      }
    }).then((response) => {
      return response.json()
    }).then((json) => {
      this.setState({
        artist: json
      })
    }).catch((error) => {
      console.log(error)
    })
  }

Details.js

if (!token || (expires && new Date().getTime() > new Date(expires).getTime())) {

  window.location.replace(`https://accounts.spotify.com/authorize?client_id=c2f9f5a873274c43a6eadd0076111423&response_type=token&redirect_uri=http://localhost:3000/callback&state=${this.state.id}`)
}

fetch(`https://api.spotify.com/v1/artists/${this.state.id}`, {
  headers: {
    'Authorization': `Bearer ${token}`
  }
}).then((response) => {
  return response.json()
}).then((json) => {
  this.setState({
    artist: json
  })
}).catch((error) => {
  console.log(error)
})

Ошибка такая:

"ошибка": {"статус": 401, "сообщение": "токен не предоставлен"}

...