当前位置: 首页 > 面试题库 >

节点+ Express +护照:要求用户未定义

苏嘉志
2023-03-14
问题内容

我的问题是类似这样的一个,但没有深入了解他的解决方案。

我正在使用Passport通过Instagram进行身份验证。成功通过身份验证后,用户将被定向到“
/”。在这一点上,请求具有用户对象(也可以正常工作)。但是,一旦我重定向,req.user是未定义的。:’(

奇怪的是,每个请求都会调用passport.deserializeUser。它成功获取了用户对象,但是在中间件的某个地方,没有设置(或未设置)req.user。

// on successful auth, goto "/" 
app.get('/', function(req, res) {
    // if the request has the user object, go to the user page
    if (req.user) {
        res.redirect("/user/" + req.user._id);
    }

    res.render("index");
}

app.get('/user/:uid', function(req, res) {
    console.log(req.user) // undefined
}

问题答案:

您是否为应用设置了会话状态?你需要这样的东西…

app.use(session({ secret: 'anything' }));
app.use(passport.initialize());
app.use(passport.session());


 类似资料:
  • 我不知道我做错了什么,因为我对另一个程序使用了同样的方法,它完美地工作了... 提前致谢

  • 这里使用Passport身份验证中间件,从登录api生成jwt令牌并发送到apihttp://localhost:3030/home/在头球,但它的投掷 错误 有棱角的js:12587员额http://localhost:3030/home/401(未经授权)。 angular.js:14525可能未处理的拒绝:{数据:未授权,状态:401,配置:{方法:POST,转换请求:[空],转换响应:[空

  • 问题内容: 从节点手册中,我可以使用来获得文件的目录,但是从REPL中,这似乎是未定义的。这是我的误解还是错误在哪里? 问题答案: 仅在脚本中定义。在REPL中不可用。 尝试制作脚本 并运行它: 您将看到打印。 添加了背景说明:表示“此脚本的目录”。在REPL中,您没有脚本。因此,将没有任何实际意义。

  • 我试图定义一些endpoint,并使用进行测试。在中,我有: 但是当我运行时,我会得到以下错误: 我如何解决这个问题?

  • 问题内容: 因此,我正在使用node / express + jade组合编写应用程序。 我有,已在客户端上加载。在该文件中,我有调用其他JavaScript文件中的函数的代码。我的尝试是使用 为了加载内容(就像我在服务器端一样),然后再加载该文件的调用函数。但是,未在客户端定义,并且抛出形式的错误。 这些其他JS文件也在客户端的运行时加载,因为我将链接放置在网页的标题处。因此,客户端知道从这些其