fix(webui): differentiate between nonce invalidation & forced logout (#2658)

Closes #2642

Reviewed-on: OpenWF/SpaceNinjaServer#2658
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
Sainan 2025-08-17 13:12:29 -07:00 committed by Sainan
parent 024b806af1
commit 660c3f3ddf
4 changed files with 8 additions and 6 deletions

View File

@ -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));
};

View File

@ -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, {

View File

@ -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 => {

View File

@ -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;