diff --git a/src/gui/src/helpers.js b/src/gui/src/helpers.js index c1cc251c2..2d9081ce6 100644 --- a/src/gui/src/helpers.js +++ b/src/gui/src/helpers.js @@ -457,10 +457,15 @@ window.refresh_user_data = async (auth_token) => { } }; -window.update_auth_data = async (auth_token, user) => { +window.update_auth_data = async (auth_token, user, api_origin) => { window.auth_token = auth_token; localStorage.setItem('auth_token', auth_token); + if ( api_origin ) { + window.api_origin = api_origin; + localStorage.setItem('api_origin', api_origin); + } + // Has username changed? if ( window.user?.username !== user.username ) { diff --git a/src/gui/src/initgui.js b/src/gui/src/initgui.js index 4287152f6..e2d62a768 100644 --- a/src/gui/src/initgui.js +++ b/src/gui/src/initgui.js @@ -295,7 +295,7 @@ window.initgui = async function (options) { // update SDK if api_origin is different from the one in the SDK if ( window.api_origin && puter.APIOrigin !== window.api_origin ) { - puter.setAPIOrigin(window.api_origin); + puter.setAPIOrigin(localStorage.getItem('api_origin') || window.api_origin); } // Print the version to the console @@ -528,6 +528,13 @@ window.initgui = async function (options) { // ------------------------------------------------------------------------------------- else if ( window.url_query_params.has('auth_token') ) { let query_param_auth_token = window.url_query_params.get('auth_token'); + let api_origin; + + // check if we have api_origin in the URL query params + if ( window.url_query_params.has('api_origin') ) { + api_origin = window.url_query_params.get('api_origin'); + puter.setAPIOrigin(api_origin); + } puter.setAuthToken(query_param_auth_token); @@ -557,7 +564,7 @@ window.initgui = async function (options) { // show login progress window UIWindowLoginInProgress({ user_info: whoami }); // update auth data - window.update_auth_data(query_param_auth_token, whoami); + window.update_auth_data(query_param_auth_token, whoami, api_origin); } // remove auth_token from URL window.history.pushState(null, document.title, '/');