diff --git a/index.js b/index.js index 08d89113..8acb48af 100644 --- a/index.js +++ b/index.js @@ -77,20 +77,12 @@ exports.login = async function (options) { // attempt to capture accountId automatically via browser callback let tempUrl; - // See: https://github.com/near/near-shell/issues/358 - const isMac = process.platform === 'darwin'; + const isWin = process.platform === 'win32'; // find a callback URL on the local machine try { - // capture callback isn't working reliably outside of Mac. This is a workaround to not use it - if (isMac) { + if (!isWin) { // capture callback is currently not working on windows. This is a workaround to not use it tempUrl = await capture.callback(5000); - // if we found a suitable URL, attempt to use it - newUrl.searchParams.set('success_url', `http://${tempUrl.hostname}:${tempUrl.port}`); - await openUrl(newUrl); - } else { - // redirect automatically, but do not use the browser callback - await openUrl(newUrl); } } catch (error) { // console.error("Failed to find suitable port.", error.message) @@ -98,6 +90,21 @@ exports.login = async function (options) { // silent error is better here } + // if we found a suitable URL, attempt to use it + if (tempUrl) { + if (process.env.GITPOD_WORKSPACE_URL) { + const workspaceUrl = new URL(process.env.GITPOD_WORKSPACE_URL); + newUrl.searchParams.set('success_url', `https://${tempUrl.port}-${workspaceUrl.hostname}`); + // Browser not opened, as will open automatically for opened port + } else { + newUrl.searchParams.set('success_url', `http://${tempUrl.hostname}:${tempUrl.port}`); + openUrl(newUrl); + } + } else if (isWin) { + // redirect automatically on windows, but do not use the browser callback + openUrl(newUrl); + } + console.log(chalk`\n{dim If your browser doesn't automatically open, please visit this URL\n${newUrl.toString()}}`); const getAccountFromWebpage = async () => { diff --git a/utils/capture-login-success.js b/utils/capture-login-success.js index 956ed462..aa19e675 100644 --- a/utils/capture-login-success.js +++ b/utils/capture-login-success.js @@ -33,7 +33,7 @@ const payload = (fields, { port, hostname }, redirectUrl) => new Promise((resolv resolve(results); }); } else { - res.writeHead(301, { Location: redirectUrl }); + res.writeHead(302, { Location: redirectUrl }); res.end(); } } catch (e) {