我正在用 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);
}
});
});