From ca977afc23ae3f23e531b3980876398c942f0352 Mon Sep 17 00:00:00 2001 From: sugoidogo Date: Wed, 29 Jan 2025 06:27:49 +0000 Subject: [PATCH] Don't redirect on twurple token request --- static/SugoiAuthProvider.mjs | 4 ++-- static/TwitchAuth.mjs | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/static/SugoiAuthProvider.mjs b/static/SugoiAuthProvider.mjs index b2c8d5e..75bc596 100644 --- a/static/SugoiAuthProvider.mjs +++ b/static/SugoiAuthProvider.mjs @@ -40,7 +40,7 @@ export default class SugoiAuthProvider { } #setToken=(token)=>{ - this.#token=token + this.#token=token return token } @@ -86,7 +86,7 @@ export default class SugoiAuthProvider { return this.#token } } - this.#token=this.addUser(...(scopeSets[0]||[])).then(getTwurpleProxy).then(this.#setToken) + this.#token=TwitchAuth.getUserTokenPassive(...(scopeSets[0]||[])).then(getTwurpleProxy).then(this.#setToken) return this.#token } diff --git a/static/TwitchAuth.mjs b/static/TwitchAuth.mjs index 2c2bcf0..bd91aed 100644 --- a/static/TwitchAuth.mjs +++ b/static/TwitchAuth.mjs @@ -172,7 +172,23 @@ export function refreshToken(client_id, refresh_token) { * @param {String} client_id * @returns {TwitchToken} */ -export function getUserToken(client_id, ...scopes) { +export async function getUserToken(client_id, ...scopes) { + const token=await getUserTokenPassive(client_id, ...scopes) + if(!token){ + return requestAuthCode(client_id, ...scopes) + } + return token +} + +/** + * This function checks the url search parameters and hash for an auth code, + * refresh token, access token, or error message, in that order. + * https://dev.twitch.tv/docs/authentication/getting-tokens-oauth/#authorization-code-grant-flow + * @param {String} client_id + * @returns {TwitchToken} + */ +export function getUserTokenPassive(client_id, ...scopes){ + console.debug('scopes requested:',...scopes) const params = new URLSearchParams(location.search + '&' + location.hash.substring(1)) if (params.has('code')) { const code = params.get('code') @@ -190,7 +206,7 @@ export function getUserToken(client_id, ...scopes) { history.replaceState(null, '', redirect_uri) throw new Error(error_message) } - return requestAuthCode(client_id, ...scopes) + return null } export default getUserToken \ No newline at end of file