From 5f223356ba4a68240cfed35f35c929e4089f9d97 Mon Sep 17 00:00:00 2001 From: Bas van den Aakster Date: Mon, 8 Dec 2025 21:39:58 +0100 Subject: [PATCH] feat: improve login persistence with server verification - Properly await isUsernameClaimed() check during initialization - Verify saved username is still valid on the server - Show 'Welcome back' toast when restoring session - Handle expired usernames gracefully --- src/App.jsx | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index 1dae71f..ce1cdbb 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -70,9 +70,26 @@ export default function App() { await service.initialize() setRondevuService(service) - if (savedUsername && service.isUsernameClaimed()) { - setMyUsername(savedUsername) - setSetupStep('ready') + // Check if we have a saved username and it's still valid + if (savedUsername && savedKeypair) { + try { + // Verify the username is still claimed by checking with the server + const isClaimed = await service.isUsernameClaimed() + if (isClaimed) { + setMyUsername(savedUsername) + setSetupStep('ready') + console.log('Restored session for username:', savedUsername) + toast.success(`Welcome back, ${savedUsername}!`, { duration: 3000 }) + } else { + // Username expired or was never properly claimed + console.log('Saved username is no longer valid, need to reclaim') + setSetupStep('claim') + } + } catch (err) { + console.error('Failed to verify username claim:', err) + // Keep the saved data but require reclaim + setSetupStep('claim') + } } else { setSetupStep('claim') }