From e53ee1d1832aba01e212ac73a26ece1ff555168f Mon Sep 17 00:00:00 2001 From: y2keui Date: Mon, 8 Jun 2026 20:41:11 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=A0=80=EC=9E=A5=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/public/app.js | 41 ++++++++++++++++------------------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/apps/web/public/app.js b/apps/web/public/app.js index 37a9295..62123c4 100644 --- a/apps/web/public/app.js +++ b/apps/web/public/app.js @@ -20,13 +20,14 @@ const state = { eventSource: null, launchTimer: 0, activeView: "locations", - adminToken: new URLSearchParams(window.location.search).get("adminToken") || - window.localStorage.getItem("cargoRadarAdminToken") || - "" + adminToken: new URLSearchParams(window.location.search).get("adminToken") || "" }; -const LOGIN_SESSION_KEY = "cargoRadarLoginReady"; -const LOGIN_NAME_KEY = "cargoRadarLoginName"; +const LEGACY_LOGIN_STORAGE_KEYS = [ + "cargoRadarLoginReady", + "cargoRadarLoginName", + "cargoRadarAdminToken" +]; const LAUNCH_STEPS = [ { title: "관제 데이터 연결 중", @@ -145,13 +146,10 @@ const VEHICLE_TYPES = { }; document.addEventListener("DOMContentLoaded", () => { - const sessionReady = initializeLoginState(); + initializeLoginState(); startSystemClock(); initializeMap(); bindActions(); - if (sessionReady) { - startDataServices(); - } }); function startDataServices() { @@ -320,29 +318,17 @@ function bindActions() { } function initializeLoginState() { - const sessionReady = window.localStorage.getItem(LOGIN_SESSION_KEY) === "true"; - const savedName = window.localStorage.getItem(LOGIN_NAME_KEY) || ""; - elements.loginNameInput.value = savedName; - - if (sessionReady) { - hideLoginScreen({ instant: true }); - return true; - } - + clearStoredLoginState(); + elements.loginNameInput.value = ""; showLoginScreen({ instant: true }); - return false; } function submitLoginForm(event) { event.preventDefault(); - const name = elements.loginNameInput.value.trim(); const code = elements.loginCodeInput.value.trim(); state.adminToken = code || state.adminToken || "demo"; - window.localStorage.setItem(LOGIN_SESSION_KEY, "true"); - window.localStorage.setItem(LOGIN_NAME_KEY, name || "관제 담당자"); - window.localStorage.setItem("cargoRadarAdminToken", state.adminToken); elements.loginCodeInput.value = ""; beginLaunchSequence(); startDataServices(); @@ -350,7 +336,7 @@ function submitLoginForm(event) { function showLoginScreen(options = {}) { clearLaunchSequence(); - window.localStorage.removeItem(LOGIN_SESSION_KEY); + clearStoredLoginState(); if (state.eventSource) { state.eventSource.close(); state.eventSource = null; @@ -363,6 +349,12 @@ function showLoginScreen(options = {}) { window.setTimeout(() => elements.loginNameInput.focus(), options.instant ? 80 : 220); } +function clearStoredLoginState() { + for (const key of LEGACY_LOGIN_STORAGE_KEYS) { + window.localStorage.removeItem(key); + } +} + function hideLoginScreen(options = {}) { if (options.instant) { document.body.classList.remove("is-login-active", "is-login-closing"); @@ -1981,7 +1973,6 @@ function requestAdminToken() { } state.adminToken = token.trim(); - window.localStorage.setItem("cargoRadarAdminToken", state.adminToken); refreshDrivers(); refreshLatestLocations(); connectEvents();