0
0
Fork 0

Make app function.

This commit is contained in:
Tyler-A 2020-07-05 18:14:59 -06:00
parent e4c81beefe
commit af75bbc522
14 changed files with 865 additions and 0 deletions

53
js/auth.js Normal file
View file

@ -0,0 +1,53 @@
function auth_url () {
let params = [
`client_id=${this.auth.client_id}`,
`response_type=token`,
`redirect_uri=${encodeURIComponent(this.auth.redirect)}`,
`scope=${encodeURIComponent(this.auth.scopes.join(" "))}`,
`show_dialog=${this.auth.show_dialog}`
];
// Create the state data if we are using it
if (this.auth.use_state) {
let state = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
params.push(`state=${state}`);
localStorage.setItem(`top-spotify-state`, state);
};
return `${this.auth.base_url}?${params.join("&")}`;
};
function verify_auth () {
let params = new URLSearchParams(window.location.hash.slice(1));
// Check to ensure the authorization was a success
if (params.get(`access_token`)) {
this.get_user()
// Check if we compare state
if (this.use_state) {
// Compare given state to localstorage state
let LS_state = localStorage.getItem(`top-spotify-state`);
if (LS_state = params.get(`state`)) {
console.info(`State compare success`)
this.authed = true;
return true
}
console.error(`State compare failed`)
return false
} else {
return true
}
} else {
let error = (new URLSearchParams(window.location.search)).get(`error`)
// Authorization failed, error to the user
if (error !== null) {
this.error.auth = `Authentication failed or was cancelled, please try again.`;
window.location.hash = ``;
}
return false;
}
}