我在 Node 中使用 passport.js 进行身份验证。
console.log(req.user);
返回
{ group: 'CuManager',
password: 'password',
username: 'administrator',
cu_id: 2,
_id: 569fd3f4328ef124be533caf }
但是
console.log(req.user.cu_id);
返回
undefined
我在想 cu_id 属性可能由于序列化/反序列化而不可用,但它就在那里。我就是无法访问它。 我怎样才能做到这一点? 我需要它
find({cu_id : req.user.cu_id})
顺便说一句,我忍不住认为 passport.js 有点过于复杂(也许我们只是相处不来)。我还可以使用什么来验证 Node 中的用户(我使用 express)?
最佳答案
如果 req.user
是一个 Mongoose 文档,您可能应该将 cu_id
添加到正确的模式中。
否则,您可以使用类似req.user.toObject().cu_id
的方法来访问该属性,或者确保以某种方式获取doc.toObject()
的结果分配给 req.user
。
至于更换 Passport :这取决于您希望如何准确地验证您的用户。如果您POST
登录表单到 Express 路由,您可以自己执行密码验证和 session 设置。
关于node.js - 无法访问 req.user 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35586806/