From 1b710729e538b4d483646d6db337f9caa3cc0483 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Wed, 14 Sep 2022 15:57:17 +0530 Subject: [PATCH] feat: logout if myAppStateKeyId not present --- src/Socket/chats.ts | 8 ++++++++ src/Socket/socket.ts | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Socket/chats.ts b/src/Socket/chats.ts index e17a435..1bca767 100644 --- a/src/Socket/chats.ts +++ b/src/Socket/chats.ts @@ -22,6 +22,7 @@ export const makeChatsSocket = (config: SocketConfig) => { sendNode, query, onUnexpectedError, + logout } = sock let privacySettings: { [_: string]: string } | undefined @@ -35,7 +36,14 @@ export const makeChatsSocket = (config: SocketConfig) => { const appStateSyncTimeout = debouncedTimeout( APP_STATE_SYNC_TIMEOUT_MS, async() => { + if(!authState.creds.myAppStateKeyId) { + logger.warn('myAppStateKeyId not synced, bad link') + await logout('Incomplete app state key sync') + return + } + if(ws.readyState === ws.OPEN) { + logger.info( { recvChats: Object.keys(recvChats).length }, 'doing initial app state sync' diff --git a/src/Socket/socket.ts b/src/Socket/socket.ts index dcc8ef2..1e46c4f 100644 --- a/src/Socket/socket.ts +++ b/src/Socket/socket.ts @@ -396,7 +396,7 @@ export const makeSocket = ({ ) /** logout & invalidate connection */ - const logout = async() => { + const logout = async(msg?: string) => { const jid = authState.creds.me?.id if(jid) { await sendNode({ @@ -419,7 +419,7 @@ export const makeSocket = ({ }) } - end(new Boom('Intentional Logout', { statusCode: DisconnectReason.loggedOut })) + end(new Boom(msg || 'Intentional Logout', { statusCode: DisconnectReason.loggedOut })) } ws.on('message', onMessageRecieved)