fix(desktop): clear stored credentials on logout

All user-initiated logouts now pass deleteKey=true to remove
nsec from secure storage, clear last_npub, and delete bunker state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
nrobi144
2026-03-05 13:36:34 +02:00
parent eafedda99e
commit 5661c6df27
@@ -199,7 +199,7 @@ fun main() =
"Logout", "Logout",
onClick = { onClick = {
deckScope.launch { deckScope.launch {
accountManager.logout() accountManager.logout(deleteKey = true)
} }
}, },
enabled = accountState is AccountState.LoggedIn, enabled = accountState is AccountState.LoggedIn,
@@ -429,7 +429,7 @@ fun App(
} }
if (connected == null) { if (connected == null) {
// No relays connected after 30s — fall back to login screen // No relays connected after 30s — fall back to login screen
accountManager.logout() accountManager.logout(deleteKey = true)
} else { } else {
val result = accountManager.loadSavedAccount(relayManager.client) val result = accountManager.loadSavedAccount(relayManager.client)
if (result.isSuccess) { if (result.isSuccess) {
@@ -743,7 +743,7 @@ fun ProfileScreen(
Spacer(Modifier.height(24.dp)) Spacer(Modifier.height(24.dp))
OutlinedButton( OutlinedButton(
onClick = { scope.launch { accountManager.logout() } }, onClick = { scope.launch { accountManager.logout(deleteKey = true) } },
colors = colors =
androidx.compose.material3.ButtonDefaults.outlinedButtonColors( androidx.compose.material3.ButtonDefaults.outlinedButtonColors(
contentColor = Color.Red, contentColor = Color.Red,
@@ -951,7 +951,7 @@ fun RelaySettingsScreen(
val logoutScope = rememberCoroutineScope() val logoutScope = rememberCoroutineScope()
OutlinedButton( OutlinedButton(
onClick = { logoutScope.launch { accountManager.logout() } }, onClick = { logoutScope.launch { accountManager.logout(deleteKey = true) } },
colors = colors =
ButtonDefaults.outlinedButtonColors( ButtonDefaults.outlinedButtonColors(
contentColor = MaterialTheme.colorScheme.error, contentColor = MaterialTheme.colorScheme.error,