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
This commit is contained in:
2025-12-08 21:39:58 +01:00
parent ab55a96fac
commit 5f223356ba

View File

@@ -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')
}