保存第一次login历史logging后,ExpressJS应用login失败
我使用PassportJS,MongoDB(Mongoose)和JSON Web令牌实现了一个ExpressJS应用程序。
在成功login路线实施
await user.insertLoginTime(); const token = user.generateJwt(); res.status(200).json({ token });
Mongoose模型方法'insertLoginTime'
userSchema.methods.insertLoginTime = async function() { try { const presentTime = new Date().getTime(); await this.loginHistory.push(presentTime); await this.save(); return; } catch (error) { throw new Error(error); } };
首先login成功,“邮递员”收到令牌,但在接下来的尝试中返回无效的密码错误。
删除'insertLoginTime'方法成功login多次尝试。 在“insertLoginTime”实现中是否有任何错误?
我已经解决了这个问题。 这是因为我添加了密码散列到架构的'预'挂钩'保存'。 在保存login历史logging时,哈希密码被再次哈希并保存。 这是删除实际密码散列,并导致下一次尝试失败。
- Node.js:我如何克隆一个带有Underscore的对象,然后将新的属性分配给克隆?
- 来自POST的res.redirect
- 如何使用passport-google-oauth成功validation后redirect到原始页面
- passportjs用户对象不会为比较密码返回密码
- 如何与Socket.IO 1.x和Express 4.x共享会话?
- 解压缩文件不起作用
- 获取TypeError:无法在mysql node.js中调用null的方法'releaseConnection'
- 用我的本地数据库连接我的应用程序(node,express,mongo)并查询它
- MongoDB配对和删除顺序数据库条目的最佳方法