From f522fc79df2b1b39145826b34415854f8e2557eb Mon Sep 17 00:00:00 2001 From: William Casarin Date: Thu, 28 Jul 2022 12:52:58 -0700 Subject: [PATCH] logout: clear keypair on logout Fixes: #12 Reported-by: Jeff Thibault (github:jeffthibault) Changelog-Fixed: Logging out now resets your keypair and actually logs out Signed-off-by: William Casarin --- damus/Util/Keys.swift | 11 ++++++++++- damus/Views/LoginView.swift | 4 ++-- damus/damusApp.swift | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/damus/Util/Keys.swift b/damus/Util/Keys.swift index e3c5f9b7..c69c572d 100644 --- a/damus/Util/Keys.swift +++ b/damus/Util/Keys.swift @@ -84,15 +84,24 @@ func save_privkey(privkey: String) { UserDefaults.standard.set(privkey, forKey: "privkey") } -func clear_privkey() { +func clear_saved_privkey() { UserDefaults.standard.removeObject(forKey: "privkey") } +func clear_saved_pubkey() { + UserDefaults.standard.removeObject(forKey: "pubkey") +} + func save_keypair(pubkey: String, privkey: String) { save_pubkey(pubkey: pubkey) save_privkey(privkey: privkey) } +func clear_keypair() { + clear_saved_privkey() + clear_saved_pubkey() +} + func get_saved_keypair() -> Keypair? { get_saved_pubkey().flatMap { pubkey in let privkey = get_saved_privkey() diff --git a/damus/Views/LoginView.swift b/damus/Views/LoginView.swift index 09a2ada8..83837597 100644 --- a/damus/Views/LoginView.swift +++ b/damus/Views/LoginView.swift @@ -139,12 +139,12 @@ func process_login(_ key: ParsedKey, is_pubkey: Bool) -> Bool { save_pubkey(pubkey: pk) case .pub(let pub): - clear_privkey() + clear_saved_privkey() save_pubkey(pubkey: pub) case .hex(let hexstr): if is_pubkey { - clear_privkey() + clear_saved_privkey() save_pubkey(pubkey: hexstr) } else { save_privkey(privkey: hexstr) diff --git a/damus/damusApp.swift b/damus/damusApp.swift index cca4ba29..d23a8602 100644 --- a/damus/damusApp.swift +++ b/damus/damusApp.swift @@ -36,6 +36,7 @@ struct MainView: View { } } .onReceive(handle_notify(.logout)) { _ in + clear_keypair() keypair = nil } .onAppear {