发送值作为参数,以检查是否存在或不使用猫鼬mongodb
嗨我使用lambda函数检查在本地运行的mongodb中的用户名和密码。发送值作为参数,以检查是否存在或不使用猫鼬mongodb
module.exports.handler = (event, context, callback) => { console.log('login');
const { username, password } = JSON.parse(event.body);
console.log("username--->",username);
console.log("password-->",password)
try {
// Authenticate user
const user = users.login(username, password);
console.log("----->inside login handler!!!",user);
这就是我发送的值在DB检查
login = function (username, password) { console.log("--------inside login of users",username,password)
userRegister.findOne({
username : username,
password : password
}).then(function(err,data){
if (err) {
console.log("---------------err", err)
return _.omit(err);
}
else {
console.log("---------------data", data)
return _.omit(data);
}
})
}
值不返回任何东西,即时得到不确定的! findOne不工作,我想!
在此先感谢
回答:
你为什么匹配密码。在findOne中,我认为在将它们存储到数据库之前,您应该已经对密码进行了散列处理。如果不是,我天意建议这样做。匹配的密码,您已经使用你哈希库
login = function (username, password) { console.log("--------inside login of users",username,password)
userRegister.findOne({
username : username // Remove password from here
}).then(function(err,data){
if (err) {
console.log("---------------err", err)
return _.omit(err);
}
else {
// Match password here
console.log("---------------data", data)
return _.omit(data);
}
})
}
回答:
使用发现由用户提供的值让你打针容易找到文档后,例如:
"username": {"$gt": ""} "password": {"$gt": ""}
我会使用第三方像passport本地认证。
您至少可以通过用户名找到用户,然后使用'==='验证用户名和密码。
至于findOne返回undefined,尝试使用类似Robomongo的工具执行相同的查询,您的语法看起来是正确的。
以上是 发送值作为参数,以检查是否存在或不使用猫鼬mongodb 的全部内容, 来源链接: utcz.com/qa/265021.html