Я создаю веб-приложение, используя Java Script (внешний интерфейс) и Java Script для внутреннего интерфейса, и я столкнулся с проблемой, при входе в систему я проверяю пароль, чтобы узнать, не это правильно, но он не впустит меня, правильно это или неправильно ... что я делаю не так? Вот мой внутренний код ...
router.post('/', function (req, res) {
const { userName, password = req.body.password, hashPass } = req.query;
connection.query(
SELECT_USER_QUERY + ` WHERE userName= ? `,
[userName],
function (error, results, fields) {
if (error) throw error;
else {
if (results.length > 0) {
bcrypt.compare(password, hashPass, function (err, result) {
if (result) {
return res.send({ message: 'Login Successful' });
} else {
return res.status(400).send({ message: 'Invalid Password' });
}
});
} else {
return res.status(400).send({ message: 'Invalid userName' });
}
}
}
);
});
и вот мой код внешнего интерфейса ...
handleLogIn = async () => {
const { userName, password } = this.state.user;
const { users } = this.state;
await postFetch(`/users/login`, {
userName: users.find((user) => user.userName === userName).userName,
password: password,
hashPass: users.find((user) => user.userName === userName).password,
})
.then(result => {
//handle wrong password
if (!result.success) {
console.log(result.errors);
return;
}
this.setState({
user: {
...this.state.user,
id: users.find((user) => user.userName === userName).id,
firstName: users.find((user) => user.userName === userName)
.firstName,
lastName: users.find((user) => user.userName === userName).lastName,
userName: users.find((user) => user.userName === userName).userName,
password: users.find((user) => user.userName === userName).password,
email: users.find((user) => user.userName === userName).email,
},
});
this.getPreference(users.find((user) => user.userName === userName).id);
this.getReadings(users.find((user) => user.userName === userName).id);
})
.catch((err) => console.log(err));
};
передать сообщение от серверной части к передней части, и если да, то как?