Javascript passport req.isAuthenticated()始终返回fasle

Javascript passport req.isAuthenticated()始终返回fasle,javascript,node.js,session,express,passport.js,Javascript,Node.js,Session,Express,Passport.js,我正在尝试使用express会话登录用户。我希望用户能够转到个人资料页,并查看他们的用户数据,如果他们已经登录 在my routes.js的第9行:req.isAuthenticate()返回false,即使我已经成功登录了用户 我的最终目标是req.user,passport保存到会话中,在/passport GET路由中定义,以便我可以将其作为数据发送到模板引擎 提前感谢我认为您的序列化/反序列化有问题 在序列化时,需要指定如何序列化用户。根据您的代码,您正在使用用户ID对其进行序列化。这

我正在尝试使用express会话登录用户。我希望用户能够转到个人资料页,并查看他们的用户数据,如果他们已经登录

在my routes.js的第9行:req.isAuthenticate()返回false,即使我已经成功登录了用户

我的最终目标是req.user,passport保存到会话中,在/passport GET路由中定义,以便我可以将其作为数据发送到模板引擎


提前感谢

我认为您的序列化/反序列化有问题

在序列化时,需要指定如何序列化用户。根据您的代码,您正在使用用户ID对其进行序列化。这就是反序列化要用到的东西。因此,您应该只希望输入参数中有一个ID,您必须找到链接到该ID的用户并将其传递给回调

这就是你应该做的:

passport.serializeUser(function(user, done){
  done(null, user.id)
})

passport.deserializeUser(function(id, done){
  User.findById(id, function(err, user){
    done(err, user)
  })
})

它是未定义的还是返回true?您是否有
app.use(passport.initialize())?一次控制台日志(请求用户);在routes中。@KethaKavya如果我在routes中输入console.log(req.user),它在我的GET/login路由中按预期工作,但在我的GET/profile路由中它未定义,即使我已经成功登录用户。见我的另一篇帖子@Aᴍ抱歉,输入错误,请求isAuthenticate()返回false。是的,我在第33行有app.use(passport.initialize())用于express.js文件。您使用的是https还是http?登录后,是否可以检查浏览器上是否已经有cookie?