};
var login = function(name, socket, passcode, callback) {
db.get(name + ':name', function(res) {
db.get(name + ':pin', function(pin) {
if (name === res) {
if (passcode === pin) {
players[sockets.indexOf(socket)] = name;
}
}
});
});
};
var register = function(name, socket, passcode, callback) {
if (name === null) {
callback('Name null!');
return;
}
if (name === '') {
callback('Name empty!');
return;
}
db.get(name + ':name', function(data) {
if (data !== null) {
callback('This name has been taken!');
}
else {
db.set(name + ':name', name, function() {
db.set(name + ':pin', passcode, function() {
players[sockets.indexOf(socket)] = name;
callback('Logged in as: ' + players[sockets.indexOf(socket)]);
});
});
}
});
};
为什么登录部分让我使用任何 PIN 登录任何用户,而注册部分不回调?
他们被称为通过
login(args[1], socket, args[2], function(data) {
callback(null, data)
}
db 是一个 redis 客户端。
完整代码:github.com/creativemud,文件 server.js