用户登录时总是显示“密码无效”;在MEAN中出现错误
User login always display "Invalid password" error in MEAN
我正在尝试使用mongoose和mongoDB作为数据库在node.js中编写一个简单的用户登录方法。每次我注册一个新用户,我都可以用这些凭据登录几次,但不知何故,它开始显示错误"无效密码"。任何帮助都会很感激。下面是代码片段:
HTML文件:<form>
<p>Email: <input type="email" ng-model="LC.logInfo.email" required></p>
<p>Password: <input type="password" ng-model="LC.logInfo.password" required></p>
<input type="submit" value="Login" ng-click="LC.login()" class="logreg_button">
</form>
user.js (model file)
UserSchema.methods.validPassword = function(enteredPassword){
return bcrypt.compareSync(enteredPassword, this.password)
}
UserSchema.pre('save', function(next){
var user = this
bcrypt.genSalt(10, function(err,salt){
if(err) console.log(err);
bcrypt.hash(user.password, salt, function(err, hash){
if(err) console.log(err);
user.password = hash;
next();
});
});
})
users.js(服务器端控制器文件)
login: function(req,res){
User.findOne({email: req.body.email}, function(err, user){
if(err) {
res.json({status: false, errors:err});
}
else if(user){
if(user.validPassword(req.body.password)){
req.session['userInfo'] = {
id: user._id,
first_name: user.first_name
}
res.json({status:true, userInfo: req.session['userInfo'] })
} else {
res.json({status: false, errors: 'Invalid password!'})
}
} else {
res.json({status: false, errors: 'User not found!'})
}
})
},
与login
服务无关。
在pre save
钩子中生成散列密码。这第一次是正确的,但是当用户需要更新时,这个钩子会破坏密码。
你需要用其他方法来处理它。例如,在pre save
钩子,你会检查如果用户是新的或不是,如果它是新的,然后散列密码。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- CKFinder 3为所选文件返回错误的URL
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 铬:“;未捕获的语法错误:意外的标记:"
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- MEAN CRUD错误崩溃无法设置标头
- 角度在ng-repeat(MEAN-Stack)中传递错误的对象
- 错误:在 ec2 bitnami MEAN 服务器上找不到软件包“cairo”
- 在 MEAN Web 应用程序中,从 Express(服务器端)发送 HTTP 响应错误 403、500,未在 Angu
- 用户登录时总是显示“密码无效”;在MEAN中出现错误
- 为什么XML会成为MEAN堆栈应用程序的问题,以及这个错误是关于什么的