API Spotify: не может быть моего токена доступа с неявным потоком предоставления - PullRequest
0 голосов
/ 07 декабря 2018

Я использую поток неявного предоставления для использования Spotify API с AngularJS, но у меня нет моего access_token.

Я реализовал поток неявного предоставления таким образом:

const hash = window.location.hash
.substring(1)
.split('&')
.reduce(function (initial, item) {
  if (item) {
    var parts = item.split('=');
    initial[parts[0]] = decodeURIComponent(parts[1]);
  }
  return initial;
}, {});
window.location.hash = '';

// Set token
let _token = hash.access_token;

const authEndpoint = 'https://accounts.spotify.com/authorize';

// Replace with your app's client ID, redirect URI and desired scopes
const clientId = 'bcb7a7...13727c';
const redirectUri = 'http://localhost/~mathieu/';
const scopes = [
  'user-read-birthdate',
  'user-read-email',
  'user-read-private'
];

// If there is no token, redirect to Spotify authorization
if (!_token) {
  window.location = `${authEndpoint}?client_id=${clientId}&redirect_uri=${redirectUri}&scope=${scopes.join('%20')}&response_type=token`;
}

Когда я перехожу по URL, меня хорошо перенаправляют на аутентификацию Spotify, но когда я подключаюсь, браузер входит в цикл перенаправления: spotify перенаправляет меня на localhost / ~ mathieu, который перенаправляет меня на спойти и т. Д. *

Полагаю, что после перенаправления Spotify мой скрипт не может получить токен, поэтому я снова перенаправлен, но не могу найти решение.

Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 19 декабря 2018

Если вы используете маршрутизатор в angular, вполне вероятно, что маршрутизатор удаляет хеш URL, прежде чем этот код сможет извлечь значение из него.Вы должны убедиться, что этот код выполняется до того, как будет запущен код вашего углового маршрутизатора.В качестве альтернативы вы можете подключиться к угловому маршрутизатору и получить там хеш. Этот вопрос предполагает, что это возможно.

...