ユーザー名とパスワードをクリアテキストで作成して保存しようとしています。私はいかなる種類の認証も行っていません (ノードパスポートを使用してこれを実行し、暗号化できることは知っていますが、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");
}
}