passport req.isAuthenticated()总是返回fasle
passport req.isAuthenticated() always returns fasle
我正在尝试使用express会话登录用户。我希望用户能够转到配置文件页面,并查看他们的用户数据,如果他们已经登录。
在routes.js:req.isAuthenticate()的第9行,返回false,尽管我已经成功登录了一个用户。
我的最终目标是在/password GET路由中定义req.user,即保存到会话的passport,这样我就可以将其作为数据发送到我的临时引擎。
https://gist.github.com/anonymous/f6ecb472eb082775181e#file-路线-js-L9
提前感谢
我认为您的序列化/反序列化有问题。
在序列化时,您需要指定如何序列化用户。根据您的代码,您正在使用用户的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)
})
})
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- JS验证ajax返回的html中的表单数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- AJAX:$_GET不返回任何值
- 从Javascript方法返回全局变量
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- passport req.isAuthenticated()总是返回fasle