node.js - 无法访问 req.user 的属性

标签 node.js express mongoose passport.js

我在 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/

相关文章:

firebase - 如何将 express 部署到 Firebase?

mongodb - 部分索引和稀疏索引mongodb有什么区别?

node.js - 获取连接 ECONNREFUSED 127.0.0.1 :80 when attempting HTTP request

node.js - Mongoose 不向 MongoDB 服务器发送 SSL 证书

javascript - Express session 表现不同 : How can I prevent my session from being destroyed after a page refresh?

node.js - Jade 在输出中添加撇号

javascript - 迭代 mongodb 条目 javascript Node

node.js - 直接从 URL 查询字符串提供的 mongo 查询有多危险?

arrays - 使用 MongoDB 更新项目数组

sql - 在sqlite3中参数化 'limit'和 'order'