gpt4 book ai didi

mysql - 认证 Node JS Sequelize Express

转载 作者:太空宇宙 更新时间:2023-11-03 10:36:35 25 4
gpt4 key购买 nike

我正在尝试使用 express、sequelize 和 mysql 实现 NodeJS 身份验证,但我被阻止了。我通过网络服务获取登录名和密码值。我想将它们与数据库值匹配:

app.get('/login', function (req, res, err) {           
var whereUser = {
login: req.query.login,
password: req.query.password
}

if (!req.query.login || !req.query.password) {
res.send('login failed');
//Here my code is wrong !
I try to compare login and password values with database login and passwword values
} else if (req.query.login && req.query.password == UsrPerson.findOne({ where: whereUser })) {
console.log("auth ok")
req.session.user = "amy";
req.session.admin = true;
res.send("login success!");
} else {
console.log("ERROR")
res.send(err)
}
});

我该怎么做?谢谢

最佳答案

app.get('/login', function (req, res, err) {    
const { login, password } = req.query;

UsrPerson
.findOne({
where: {
login: login,
password: password
}
})
.then((foundUser) => {
if(!foundUser){
res.send('login failed');
} else {
console.log("auth ok");
req.session.user = "amy";
req.session.admin = true;
res.send("login success!");
}
})
.catch((err) => {
console.log('ERROR');
res.send(err);
});
});

您想比较具有给定用户名和密码组合的用户是否存在。

而且您似乎正在以纯文本形式存储密码,没有任何加密。这一点都不安全。你必须使用像 bcrypt 这样的库并且只将加密的密码存储在您的数据库中

关于mysql - 认证 Node JS Sequelize Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47310865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com