LocalStorage 在实施记住我并重新启动应用程序时被清除

问题描述 投票:0回答:0

我正在用 ElectronJs 制作一个应用程序。我已完成登录页面并添加了一个记住我的复选框。我也使用了 LocalStorage 来实现记住我的功能,但是每次我在勾选框的情况下登录,并在终端中写入 rs 以重新启动应用程序,LocalStorage 被清除并返回我的登录页面,为什么?

这是我的代码:

import { initializeApp } from "https://www.gstatic.com/firebasejs/9.21.0/firebase-app.js";
import { getDatabase, ref, set, onValue, update} from "https://www.gstatic.com/firebasejs/9.21.0/firebase-database.js";
const firebaseConfig = { ... };
const app = initializeApp(firebaseConfig);

// REMEMBER ME FEATURE
const loggedIn = localStorage.getItem("loggedIn")
window.addEventListener("load", () => {
    if (loggedIn === true) {
        window.location.href = "home.html";
    }
});

// SIGN IN FUNCTION
document.querySelector("#signInButton").addEventListener("click", () => {
    const code = document.querySelector("#codeEntry").value;
    const username = document.querySelector("#usernameEntry").value;
    const password = document.querySelector("#passwordEntry").value;
    const errorMessage = document.querySelector("#signInErrorMessage1")
    const dbRef = ref(getDatabase(), code + "/users/" + username);

    onValue(dbRef, (snapshot) => {
        const data = snapshot.val();

        if (data !== null && data.password === password) {
            const fullname = data.name;
            const rememberMeCheckbox = document.querySelector("#cbx");

            if (rememberMeCheckbox.checked) {
                localStorage.setItem("loggedIn", true);
            } else {
                localStorage.setItem("loggedIn", false);
            }

            localStorage.setItem("code", code);
            localStorage.setItem("username", username);
            localStorage.setItem("fullname", fullname);
            window.location.href = "home.html";
        } else {
            errorMessage.classList.add("show");
            setTimeout(() => {
                errorMessage.classList.remove("show"); 
            }, 10000); 
        }
    });
});
javascript firebase electron local-storage
© www.soinside.com 2019 - 2024. All rights reserved.