From e47ea98cdd1843752862f99d6678a1305cb5b6d7 Mon Sep 17 00:00:00 2001 From: advplyr Date: Sat, 17 Feb 2024 16:58:49 -0600 Subject: [PATCH] Fix:Disconnect from socket on logout, remove unnecessary logout function --- client/pages/account.vue | 31 ++++++++++++++++++------------- server/SocketAuthority.js | 19 ------------------- 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/client/pages/account.vue b/client/pages/account.vue index ba5370c3..f531a34d 100644 --- a/client/pages/account.vue +++ b/client/pages/account.vue @@ -82,9 +82,11 @@ export default { this.$setLanguageCode(lang) }, logout() { - var rootSocket = this.$root.socket || {} - const logoutPayload = { - socketId: rootSocket.id + // Disconnect from socket + if (this.$root.socket) { + console.log('Disconnecting from socket', this.$root.socket.id) + this.$root.socket.removeAllListeners() + this.$root.socket.disconnect() } if (localStorage.getItem('token')) { @@ -93,17 +95,20 @@ export default { this.$store.commit('libraries/setUserPlaylists', []) this.$store.commit('libraries/setCollections', []) - this.$axios.$post('/logout').then((logoutPayload) => { - const redirect_url = logoutPayload.redirect_url + this.$axios + .$post('/logout') + .then((logoutPayload) => { + const redirect_url = logoutPayload.redirect_url - if (redirect_url) { - window.location.href = redirect_url - } else { - this.$router.push('/login') - } - }).catch((error) => { - console.error(error) - }) + if (redirect_url) { + window.location.href = redirect_url + } else { + this.$router.push('/login') + } + }) + .catch((error) => { + console.error(error) + }) }, resetForm() { this.password = null diff --git a/server/SocketAuthority.js b/server/SocketAuthority.js index b626c0e4..930037a8 100644 --- a/server/SocketAuthority.js +++ b/server/SocketAuthority.js @@ -219,25 +219,6 @@ class SocketAuthority { client.socket.emit('init', initialPayload) } - logout(socketId) { - // Strip user and client from client and client socket - if (socketId && this.clients[socketId]) { - const client = this.clients[socketId] - const clientSocket = client.socket - Logger.debug(`[SocketAuthority] Found user client ${clientSocket.id}, Has user: ${!!client.user}, Socket has client: ${!!clientSocket.sheepClient}`) - - if (client.user) { - Logger.debug('[SocketAuthority] User Offline ' + client.user.username) - this.adminEmitter('user_offline', client.user.toJSONForPublic()) - } - - delete this.clients[socketId].user - if (clientSocket && clientSocket.sheepClient) delete this.clients[socketId].socket.sheepClient - } else if (socketId) { - Logger.warn(`[SocketAuthority] No client for socket ${socketId}`) - } - } - cancelScan(id) { Logger.debug('[SocketAuthority] Cancel scan', id) this.Server.cancelLibraryScan(id)