From 56f56db7fb1ca9fea07c0e06685bcaae143d10b4 Mon Sep 17 00:00:00 2001 From: Diego Mello Date: Mon, 12 Aug 2024 17:22:45 -0300 Subject: [PATCH] Remove keychain internet credentials on logout --- app/lib/methods/logout.ts | 6 ++++-- ios/Shared/RocketChat/Storage.swift | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/lib/methods/logout.ts b/app/lib/methods/logout.ts index 0646c71c54..7bde9e63de 100644 --- a/app/lib/methods/logout.ts +++ b/app/lib/methods/logout.ts @@ -1,6 +1,7 @@ import * as FileSystem from 'expo-file-system'; import { Rocketchat as RocketchatClient } from '@rocket.chat/sdk'; import Model from '@nozbe/watermelondb/Model'; +import * as Keychain from 'react-native-keychain'; import { getDeviceToken } from '../notifications'; import { extractHostname, isSsl } from './helpers'; @@ -15,7 +16,7 @@ import { Services } from '../services'; import { roomsSubscription } from './subscriptions/rooms'; import { _activeUsersSubTimeout } from '.'; -function removeServerKeys({ server, userId }: { server: string; userId?: string | null }) { +async function removeServerKeys({ server, userId }: { server: string; userId?: string | null }) { UserPreferences.removeItem(`${TOKEN_KEY}-${server}`); if (userId) { UserPreferences.removeItem(`${TOKEN_KEY}-${userId}`); @@ -24,6 +25,7 @@ function removeServerKeys({ server, userId }: { server: string; userId?: string UserPreferences.removeItem(`${server}-${E2E_PUBLIC_KEY}`); UserPreferences.removeItem(`${server}-${E2E_PRIVATE_KEY}`); UserPreferences.removeItem(`${server}-${E2E_RANDOM_PASSWORD_KEY}`); + await Keychain.resetInternetCredentials(server); } async function removeSharedCredentials({ server }: { server: string }) { @@ -56,7 +58,7 @@ export async function removeServerData({ server }: { server: string }): Promise< await serversDB.write(() => serversDB.batch(...batch)); await removeSharedCredentials({ server }); - removeServerKeys({ server, userId }); + await removeServerKeys({ server, userId }); } catch (e) { log(e); } diff --git a/ios/Shared/RocketChat/Storage.swift b/ios/Shared/RocketChat/Storage.swift index efa1621d83..84ef770377 100644 --- a/ios/Shared/RocketChat/Storage.swift +++ b/ios/Shared/RocketChat/Storage.swift @@ -1,6 +1,5 @@ import Foundation import Security -import os struct Credentials { let userId: String