From 6b23e7d7edd81b4caa44fbbe337c04198bb556c5 Mon Sep 17 00:00:00 2001 From: Toshit Chawda Date: Fri, 1 May 2026 16:03:22 -0700 Subject: [PATCH] force wisp auth --- src/puter-js/src/modules/networking/index.js | 21 +++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/puter-js/src/modules/networking/index.js b/src/puter-js/src/modules/networking/index.js index 254d317fa..8a0bca94c 100644 --- a/src/puter-js/src/modules/networking/index.js +++ b/src/puter-js/src/modules/networking/index.js @@ -25,19 +25,38 @@ function getWispRequestHeaders () { return headers; } +async function ensureWispAuthentication () { + const puter = getPuterInstance(); + if ( puter.authToken ) { + return; + } + + await puter.ui.authenticateWithPuter(); +} + function getClientCacheKey () { const puter = getPuterInstance(); return `${puter.APIOrigin}::${puter.authToken || ''}`; } -export async function getWispCredentials () { +export async function getWispCredentials (retryAuth = true) { const puter = getPuterInstance(); + await ensureWispAuthentication(); + const response = await fetch(`${puter.APIOrigin}/wisp/relay-token/create`, { method: 'POST', headers: getWispRequestHeaders(), body: JSON.stringify({}), }); + if ( response.status === 401 && retryAuth ) { + if ( typeof puter.resetAuthToken === 'function' ) { + puter.resetAuthToken(); + } + await ensureWispAuthentication(); + return await getWispCredentials(false); + } + if ( ! response.ok ) { throw new Error( `Failed to create relay token (HTTP ${response.status} ${response.statusText}).`,