【问题标题】:req.user is undefined when trying to get it from api methods尝试从 api 方法获取 req.user 时未定义
【发布时间】:2015-01-08 09:15:22
【问题描述】:

routes 文件夹中有两个文件 - index.jsapi.jsindex.js 只发送带有链接样式、图像和脚本的主模板页面。 api.js 管理所有 API 调用。

我正在使用 PassportJS 实现身份验证。身份验证本身工作正常。问题是,由于某种原因,我在尝试从 api.js 端点访问 req.user 时得到了 undefined,但从 index.js 访问时它很好并且填充了正确的数据。

例如,当从 api 端点请求时,我需要以 JSON 格式发送所有用户的帖子,所以我想获取 req.user.id 或类似的东西来向服务器端的数据库发送请求。

配置 Passport 时我会错过什么?

【问题讨论】:

  • passport 借助 cookie 中的会话 id 反序列化用户,也许您没有发送 cookie,或者您的会话有问题。

标签: javascript node.js passport.js


【解决方案1】:

您必须在所有路由之前包含护照的会话中间件,以便它可以设置req.user

app.use(express.session({ secret: 'secret' }));
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
app.use(myRoutes);

【讨论】:

    【解决方案2】:

    确保您获得的是 ._id 而不是 .id,这是 MongoDB 中默认创建的 ID。

    【讨论】:

      猜你喜欢
      • 2021-08-16
      • 1970-01-01
      • 2018-02-23
      • 2019-12-10
      • 1970-01-01
      • 2019-09-06
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      相关资源
      最近更新 更多