发送值作为参数,以检查是否存在或不使用猫鼬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

回到顶部