我正在使用隐式授予流来将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等。
我想在Spotify重定向我之后,我的脚本无法获得令牌,因此我又被重定向了,但是我找不到解决方案。
请帮我
答案 0 :(得分:0)
如果您使用的路由器是有角度的,则很可能是在此代码可以从中获取值之前,路由器会剥离URL的哈希值。您需要确保此代码在您的角度路由器代码运行之前运行。另外,您也可以插入有角路由器并在其中检索哈希值。 This question似乎暗示可能。