From 84b7abb3b52c29ab700505cbc28873b0a0a63ce6 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sat, 16 Aug 2025 20:40:54 +0200 Subject: [PATCH] fix(webui): differentiate between nonce invalidation & forced logout --- src/controllers/api/loginController.ts | 3 +-- src/controllers/api/logoutController.ts | 3 +-- src/services/wsService.ts | 3 ++- static/webui/script.js | 5 ++++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/controllers/api/loginController.ts b/src/controllers/api/loginController.ts index 1de6104f..05329be4 100644 --- a/src/controllers/api/loginController.ts +++ b/src/controllers/api/loginController.ts @@ -88,8 +88,7 @@ export const loginController: RequestHandler = async (request, response) => { account.LastLogin = new Date(); await account.save(); - // Tell WebUI its nonce has been invalidated - sendWsBroadcastTo(account._id.toString(), { logged_out: true }); + sendWsBroadcastTo(account._id.toString(), { nonce_updated: true }); response.json(createLoginResponse(myAddress, myUrlBase, account.toJSON(), buildLabel)); }; diff --git a/src/controllers/api/logoutController.ts b/src/controllers/api/logoutController.ts index d290b1ee..bf7328a4 100644 --- a/src/controllers/api/logoutController.ts +++ b/src/controllers/api/logoutController.ts @@ -21,8 +21,7 @@ export const logoutController: RequestHandler = async (req, res) => { } ); if (stat.modifiedCount) { - // Tell WebUI its nonce has been invalidated - sendWsBroadcastTo(req.query.accountId as string, { logged_out: true }); + sendWsBroadcastTo(req.query.accountId as string, { nonce_updated: true }); } res.writeHead(200, { diff --git a/src/services/wsService.ts b/src/services/wsService.ts index fb4bbee3..e55293cd 100644 --- a/src/services/wsService.ts +++ b/src/services/wsService.ts @@ -73,8 +73,9 @@ interface IWsMsgToClient { auth_fail?: { isRegister: boolean; }; - logged_out?: boolean; + nonce_updated?: boolean; update_inventory?: boolean; + logged_out?: boolean; } const wsOnConnect = (ws: ws, req: http.IncomingMessage): void => { diff --git a/static/webui/script.js b/static/webui/script.js index 50aaf932..4958285c 100644 --- a/static/webui/script.js +++ b/static/webui/script.js @@ -81,12 +81,15 @@ function openWebSocket() { single.loadRoute("/webui/"); } } - if ("logged_out" in msg) { + if ("nonce_updated" in msg) { sendAuth(); } if ("update_inventory" in msg) { updateInventory(); } + if ("logged_out" in msg) { + logout(); + } }; window.ws.onclose = function () { ws_is_open = false; -- 2.47.2