diff --git a/keyserver/src/keyserver.js b/keyserver/src/keyserver.js --- a/keyserver/src/keyserver.js +++ b/keyserver/src/keyserver.js @@ -42,6 +42,7 @@ uploadDownloadResponder, } from './uploads/uploads.js'; import { createAuthoritativeKeyserverConfigFiles } from './user/create-configs.js'; +import { fetchIdentityInfo } from './user/identity.js'; import { verifyUserLoggedIn } from './user/login.js'; import { initENSCache } from './utils/ens-cache.js'; import { initFCCache } from './utils/fc-cache.js'; @@ -102,18 +103,23 @@ const aes256Key = crypto.randomBytes(32).toString('hex'); const ed25519Key = await getContentSigningKey(); - await createAndMaintainTunnelbrokerWebsocket(aes256Key); - - console.log( - '\nOpen the Comm app on your phone and scan the QR code below\n', - ); - console.log('How to find the scanner:\n'); - console.log('Go to \x1b[1mProfile\x1b[0m'); - console.log('Select \x1b[1mLinked devices\x1b[0m'); - console.log('Click \x1b[1mAdd\x1b[0m on the top right'); - - const url = qrCodeLinkURL(aes256Key, ed25519Key); - qrcode.toString(url, (error, encodedURL) => console.log(encodedURL)); + const [identityInfo] = await Promise.all([ + fetchIdentityInfo(), + createAndMaintainTunnelbrokerWebsocket(aes256Key), + ]); + + if (!identityInfo) { + console.log( + '\nOpen the Comm app on your phone and scan the QR code below\n', + ); + console.log('How to find the scanner:\n'); + console.log('Go to \x1b[1mProfile\x1b[0m'); + console.log('Select \x1b[1mLinked devices\x1b[0m'); + console.log('Click \x1b[1mAdd\x1b[0m on the top right'); + + const url = qrCodeLinkURL(aes256Key, ed25519Key); + qrcode.toString(url, (error, encodedURL) => console.log(encodedURL)); + } } catch (e) { console.log('Error generating QR code', e); }