用户未定义:Nodejs/Express + Passport

2024-03-11

我的问题非常类似于这个问题 https://stackoverflow.com/questions/16434893/node-express-passport-req-user-undefined然而答案似乎对我不起作用(我看到用户也从未选择过答案)。

我全新安装了 Nodejs 和 Express。

我的设置:

app.use(express.static(path.join(__dirname, 'public')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser('hithere'));
app.use(session({
    secret: 'hithere',
    resave: false,
    saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());


passport.serializeUser(function(user, done) {
  console.log('Serialize user called.');
  return done(null, user);
});

passport.deserializeUser(function(id, done) {
  console.log('Deserialize user called.');
  return done(null, user);
});

passport.use(new LocalStrategy(
  function(username, password, done) {
    console.log('local strategy called with: %s', username);
    return done(null, {username:username, password:password});
  }));


app.use('/', routes);
app.use('/users', users);
app.get('/success', function(req, res) {
  req.send('sucess!');
});
app.get('/failure', function(req, res) {
  req.send('failure!');
})
app.post('/register', function(req, res) {
    console.log(req.body);
});

app.post('/signup', passport.authenticate('local', { successRedirect: '/success', failureRedirect: '/failure' }));

我在用着快速会话 https://github.com/expressjs/session.

我的 LocalStrategy、序列化和反序列化用户都被调用,但坦率地说,我不太确定在这个测试应用程序的反序列化功能上放置什么。

有修复建议吗?


You get user is not defined因为user事实上你的定义中没有定义deserializeUser()打回来。如果您查看“会话”部分中的示例这一页 http://passportjs.org/guide/configure/,你会发现你应该查找id在您的数据库中并将用户对象(从数据库查询的结果生成)传递给done打回来。

出于简单的测试目的,您可以轻松地使用假用户对象,直到设置数据库为止:

passport.deserializeUser(function(id, done) {
  console.log('Deserialize user called.');
  return done(null, { firstName: 'Foo', lastName: 'Bar' });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用户未定义:Nodejs/Express + Passport 的相关文章

随机推荐

  • zip mime 类型,何时选择哪一种

    到目前为止 对于 Zip 文件的 Mime 类型 我已经看到 应用程序 八位字节流 多部分 x zip 应用程序 zip 应用程序 zip压缩 应用程序 x zip 压缩 我想我的问题是哪个是 最好的 为什么 为什么有这么多选择 我使用 w
  • System.Timers.Timer Elapsed 事件在调用timer.Stop()后执行

    背景 我有一个计时器 用于跟踪自串行端口数据接收事件被触发以来已经过去了多长时间 我正在为此创建自己的解决方案 而不是使用内置的超时事件 因为我正在获取连续的数据流 而不是发送查询并获取一个响应 问题 在 DataReceived 处理程序
  • HTML - 给定一个表格,如何在不破坏布局的情况下允许一列流动

    我有以下内容 div style width 100 table tr td style width 30px hi td td style width 40px hi td td style width 1 LOTS Of text in
  • whitespaceAndNewlineCharacterSet() 中有哪些字符?

    我正在解析一些讨厌的文件 你知道 在一个文件中混合逗号 空格和制表符分隔符单线 然后通过文本编辑器运行它 该编辑器会在第 65 列用 CRLF 换行 啊 作为我在 Cocoa 中解析此内容的努力的一部分 我使用 Apple 的whitesp
  • 验证传递给 Mock 的参数是否按预期设置的正确方法

    如果您稍后验证调用了这些方法 是否可以在回调中进行断言 这是确保我的模拟获得传递给它的预期参数的首选方法 还是应该在回调中设置局部变量并在该实例上执行断言 我遇到的情况是 Presenter 类中有一些逻辑 它根据输入派生值并将它们传递给
  • 在 R 中使用 persp3D 函数时,如何向轴标签添加下标?

    I am trying to define my z axis label as R0 in plot3D below are my code I am using expression for my zlab but I get the
  • 错误:文件已加密或不是数据库

    我使用 PHP 创建了一个带有表的数据库 我通过以下方式做到了 从命令行执行 PHP 文件 php test php 后 我在目录中得到一个名为 test db 的新文件 这就是我想要的 然后 在命令行中 我输入 sqlite3 test
  • em 与 px...针对移动浏览器

    对于桌面浏览器 所有现代浏览器都使用缩放功能 因此我们可以使用 PX 但如果可以在移动设备上看到相同的站点 那么 px 不适合在移动浏览器中缩放 或者使用 px 对于移动浏览器也很好 即使我们不关心 IE 6 如果我们不为移动设备制作不同的
  • 如何在cassandra中构建范围查询?

    CREATE TABLE users userID uuid firstname text lastname text state text zip int age int PRIMARY KEY userID 我想构造以下查询 selec
  • 独立 Java SE 应用程序的项目目录结构是什么?

    独立 Java SE 基于命令行 应用程序的标准项目目录结构是什么 src文件夹将包含我的所有 java正确组织的包中的文件 除此之外我还有bin文件夹将包含我的 class files 我的项目中有属性文件和 XML 配置文件 我应该将它
  • 使用 .htaccess 通过 index.php 重新路由除一组特定请求之外的所有请求

    所以我只是继承了一个网站 我想做的第一件事是构建一个漂亮的小标准 简单易用的 CMS 允许使用任何 URL 创建页面 例如 whatever html 因此 如果用户点击 example com whatever html 它应该获取wha
  • Android Webview - 当用户滚动时检测标题名称

    我有这种模式的 html 文件 a a h2 First Heading h2 a Some Text goes here a br br a a h2 Second Heading h2 Some Text goes here br br
  • 如何在 C++ 中将成员变量指针转换为泛型类型

    我的应用程序中有与此类似的代码 class A public int b class C public int d void DoThings void arg1 MYSTERYTYPE arg2 A obj a C obj c DoThi
  • 如何从 R 调用 Fortran 程序

    我对 Fortran 完全陌生 但对 R 很熟悉 我得到了一个巨大的 Fortran 程序 其中包含大约 30 个子例程和大约 15 个函数以及许多其他代码行 有人告诉我需要从R中调用Fortran程序 我一直在网上寻找方法 在 R 和 F
  • 如何使用 SBCL 正确保存 Common Lisp 图像?

    如果我想创建我的程序的 Lisp 映像 我该如何正确地做到这一点 有什么先决条件吗 它与 QUICKLISP 配合得很好吗 现在 如果我启动 SBCL 仅预加载 QUICKLISP 并保存图像 save lisp and die core
  • 如何用Java解析ini文件? [复制]

    这个问题在这里已经有答案了 这是一个示例 ini 文件 link 1 alias My Link 1 link https www yandex ru link 2 alias My Link 2 link https mail ru li
  • Python中的变量插值[重复]

    这个问题在这里已经有答案了 可能的重复 在Python中打印变量的非Pythonic方式 https stackoverflow com questions 3534803 unpythonic way of printing variab
  • kafka 是否有默认的 Web UI [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有几个关于卡夫卡的问题 1 Kafka 有默认的 Web UI 吗 2 我们如何优雅地关闭独立的kafka服务器 kafka控制台
  • 如何在悬停图像时向下滚动?

    我想当悬停图像时 它会向下滚动到图像的末尾 我有两个问题 当用户将鼠标悬停在图像上时如何滚动到图像的末尾 目前 我开始将鼠标悬停在图像上 它没有滚动到图像的末尾 如何控制鼠标悬停在图像上时滚动的速度 My code body margin
  • 用户未定义:Nodejs/Express + Passport

    我的问题非常类似于这个问题 https stackoverflow com questions 16434893 node express passport req user undefined然而答案似乎对我不起作用 我看到用户也从未选择