У меня работает этот сервер узлов:
var server=http.createServer(function(request, responsehttp) {
if (request.method == 'POST') {
var body = '';
request.on('data', function (data) {
body += data;
});
request.on('end', function () {
var POST = qs.parse(body);
processquery(POST, request, responsehttp);
});
} else {
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
console.log(query);
processquery(query, request, responsehttp);
}
});
Я хочу добавить форму авторизации для этого сервера. Поэтому, когда пользователь аутентифицирован, он покажет.
function processquery(query, request, responsehttp){
var returnResult = function (data){
responsehttp.end(JSON.stringify(data));
};
if (!query.command) {
fileprocess(request, responsehttp);
}
responsehttp.writeHead(200, {"Content-Type": "application/json"});
switch(query.command) {
case 'logout':
logout(query, returnResult);
break;
case 'login':
login(query, returnResult);
break;
}
}
в функции запроса процесса, возвращающей файлы клиенту, если какая-либо команда не указана,
поэтому я могу отправить команду входа от клиента к серверу, но что должен делать сервер, когда он получает команду входа с паролем имени пользователя, как он должен передать запрос на вход в систему и вернуть успех или ошибку входа в систему, для написания этой части мне нужна помощь.
что я пробовал.
function login(request, callback) {
if(request.username==users[request.username] && request.password==users[request.username].password) {
users[request.username].auth=true;
var data = {result:'success','message':'login successful'};
callback(data);
} else {
var data = {result:'error','message':'login incorrect'};
callback(data);
}
}
Пожалуйста, предложите, как я могу добавить сеанс в этом, я попытался добавить, запросить переменную в функции входа в систему и попытался установить переменную request.session, в которой говорится, что request.session не определен.
Подскажите, пожалуйста, как мне написать этот модуль входа в систему, который может правильно поддерживать аутентификацию входа для каждого пользователя.