我正在做一个学校项目,我必须使用 JavaScript 构建一个基于 Angular 色的登录系统,该系统会将 2 种类型的用户重定向到他们自己的网站。我正在为硬编码用户使用本地存储(我知道它不安全,我们不使用任何数据库)并在我的构造函数中使用“身份验证级别”进行重定向
我的问题是整体任务;))但现在我遇到了这个特定错误 UserLogin
is not Define at validate (Login.js:10)
at HTMLButtonElement.onclick
。
class UserLogin {
constructor(username, password, authLevel) {
this.username = username;
this.password = password;
this.authlevel = authLevel;
}
}
// Localstorage logins
if (localStorage.getItem(userLogin) == null) {
var userLogins = [];
userLogins.push(new UserLogin("Benjamin", 4321, "1"));
userLogins.push(new UserLogin("Mads", 12345, "1"));
userLogins.push(new UserLogin("Simon", 1234, "1"));
userLogins.push(new UserLogin("Jessica", 54321, "1"));
// Logins for Projectmanagers
userLogins.push(new UserLogin("Oliver", 1234, "2"));
userLogins.push(new UserLogin("Sara", 4321, "2"));
var userLoginstring = JSON.stringify(UserLogin)
localStorage.setItem("UserLogin", userLoginstring)
} else {
var employeeList = JSON.parse(localStorage.getItem("UserLogin"))
}
//And my function to validate the user ( Not taking authentication level into account yet, just want it to be able to work)
function validate() {
// from reg form in HTML
var uname = document.getElementById("uname");
var pass = document.getElementById("pass")
var userLogins = JSON.parse(localStorage.getItem("UserLogin"));
if (!userLogins) {
userLogins = [
//Logins for Employee
new UserLogin("Benjamin", 4321, "1"),
new UserLogin("Mads", 12345, "1"),
new UserLogin("Simon", 1234, "1"),
new UserLogin("Jessica", 54321, "1"),
// Logins for Projectmanagers
new UserLogin("Oliver", 1234, "2"),
new UserLogin("Sara", 4321, "2"),
];
localStorage.setItem("userLogin", JSON.stringify(userLogins));
for (let i = 0; i < userLoginsserLogins.length; i++) {
if (username.value == userLogins && password.value == userLogins) {
alert("You have been logged in");
document.location = "Medarbejderside.html";
return false
} else {
alert("Login denied");
}
}
}
}
最佳答案
我可以看到您使用了两种不同的符号,即 localStorage.getItem(userLogin)
和 localStorage.getItem(UserLogin)
。
确保您使用的名称与为 localStorage 设置的名称相同,无论是 userLogin
还是 UserLogin
。
第二件事是,无论您使用 localStorage.getItem() 还是 localStorage.setItem(),请确保将名称作为字符串传递,即在引号内传递,例如 localStorage.getItem("userLogin")
或 localStorage.setItem("userLogin")
关于javascript - 角色库登录 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58696680/