#mysql #node.js #rest #hapi
Вопрос:
У меня есть код, который я использую для создания REST API с использованием Hapi.js и используйте базовую аутентификацию, интегрировав ее с SQL. Здесь я чувствую себя сбитым с толку, потому что мой код не возвращает результат if … из MySQLdb.query в моем коде
server.auth.strategy('simple', 'basic', {
validate: async (request, username, password) => {
const validating = mySqlDb.query(
'SELECT * FROM users WHERE username = ? '
'AND password = ?;',
[username, password], function(error, results, fields) {
let isValid;
let credentials;
console.log(results);
if (results.length === 1) {
isValid = true;
credentials = {
account: username,
login: 'now',
};
return {isValid, credentials};
}
if (results.length === 0) {
isValid = false;
credentials = null;
return {isValid, credentials};
}
},
);
console.log(validating); //To check the value of validating
return validating; //Validating does not returns isValid or credential values from that if... statement
},
},
);
Эта проблема возникает при возврате значения проверяющей переменной, которая возвращает значение другого значения, а не результат оператора if…, который возвращает значение isValid и учетные данные. Это вызвало ошибку «Неверное имя пользователя и неверный пароль» при тестировании с почтальоном.
{
"statusCode": 401,
"error": "Unauthorized",
"message": "Bad username or password",
"attributes": {
"error": "Bad username or password"
}
}
Что не так в моем коде и что я должен исправить в своем коде?