我正在尝试以明文形式创建和存储用户名和密码。我没有进行任何类型的身份验证(我知道我可以使用 Node 护照来执行此操作并进行加密,但我只是在学习 javascript,所以我只是想尝试一下)
我有一个全局定义的对象,如下所示:
var obj= {username: req.body.username,
password: req.body.password}
我正在推送到我的 RegisteredUsers 数组:
var registeredUsers = new Array();
我的问题是我希望能够执行以下操作:
if((($.inArray(username, registerdUsers) == username &&
($.inArray(password, registerdUsers)) == password){
res.redirect("/?error=Already Registered");
}
这不起作用,我如何检查对象的两个值以查看它们是否包含在我的数组中?
以下是我正在执行身份验证的功能,以防有人好奇:
function ensureAuthentication(req, res, next){
//push object onto the registeredUsers array
registeredUsers.push(obj);
//if the user is already registered, throw error
if (($.inArray(username, registeredUsers) && ($.inArray(password, registeredUsers)) {//obj.contains() username){
res.redirect("/?error=Already Registered");
}
//if new user
else{
authentication.push(obj);
console.log("added new user);
//redirect to homepage
res.rediret("/");
}
}
和
function login(req, res) {
//var username = req.body.username;
req.session.username = username;
req.session.password = password;
loggedInUsers[username] = LoggedIn;
if((($.inArray(username, registerdUsers) == username && ($.inArray(password, registerdUsers)) == password){
//increase login count
for(users in loggedInUsers){
++loginCount;
console.log("Login Count: ", loginCount);
}
//redirect to login page
res.redirect("/users")
}
else{
//print out error message
res.redirect("/?error=Error: incorrect username/password");
}
}
最佳答案
通过用户名查找对象:
var user;
for(var i = 0; user = registeredUsers[i]; i++) {
if(user.username === username)
break;
}
检查密码:
var valid = user && user.password === password;
关于javascript - 如何验证数组中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19369368/