Passport 和 connect-flash:req.flash 不是函数

2023-12-19

我在学flash消息输入passport并在运行我的脚本时遇到此错误:

req.flash is not a function

这是我的配置:

var flash=require("connect-flash");
app.use(flash());

passport.use(new LocalStrategy(function(req,username, password,done) {
process.nextTick(function() {
    UserDetails.findOne({'username': username}, function(err, user) {
        if (err) {
            return done(err);
        }          
        if (!user) {
            return done(null, false,req.flash('message','Invalid username or password'));
        }
        if (user.password != password) {
            return done(null, false,req.flash('message','Invalid username or password' ));
        }
        return done(null, user);
    });
});
}));

我的路线:

app.get('/', function (req, res) {
res.render('login',{ message: req.flash('message') });
});

我的策略:

app.post('/login', function(req,res,next){
passport.authenticate('local', function(err, user) {
    if (err) { return next(err); }
    if (!user) { return res.redirect('/')}
    req.logIn(user, function(err) {
        if (err) { return next(err); } 
            arenderFunction(req,res);
        });
    })
(req, res, next);
});

任何帮助深表感谢!


默认情况下,请求对象不会传递给策略回调,您需要设置passReqToCallback选项:

passport.use(new LocalStrategy({
  passReqToCallback : true
}, function(req, username, password, done) { ... }));

这是有记录的here http://passportjs.org/docs#association-in-verify-callback.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Passport 和 connect-flash:req.flash 不是函数 的相关文章

随机推荐

  • 在 Swift 中创建一个目录并在其中存储文件

    我正在创建一个目录 以便我可以将临时视频保存到其中 因为 TempVideos 是一个文件夹 现在我的视频剪辑将位于该文件夹内 func createTempDirectoryToStoreVideos var error NSError
  • 谷歌文档脚本,搜索和替换文本字符串并更改字体(例如粗体)

    我是谷歌文档脚本的新手 在谷歌文档中 我需要搜索几个文本字符串 例如 lightface字体的 student 1 以将这些文本字符串替换为另一个文本字符串 例如 学生A 但在boldface font 为了搜索和替换 我使用以下代码 fu
  • 何时在 LINQ 中使用 lambda 表达式而不是Where子句

    我一直在深入研究 LINQ 并且正在尝试解决这个 lambda 表达式业务 我只是没有看到语法的一些细微差别的好处 首先 在我看来 lambda 表达式主要只是使用Where 子句的一种不同方式 那么为什么我不直接使用Where 子句呢 l
  • 在 Android 上使用 pjsip

    我成功安装并构建了pjsip图书馆和pjsua对于Android 我跑了pjsua在我的设备上并且它有效 但是我仍然不知道如何使用这个库的方法 我已经看过了CSipSimple应用程序 我注意到jni这两个项目的文件夹非常不同 我是否必须将
  • Google 计算引擎 .NET API 示例/样本/教程

    我还没有找到任何可以清楚地解释如何通过 net API 特别是 c 使用 google 计算引擎的内容 有没有人可以给我指点什么 附 我知道 API 参考 https developers google com resources api
  • 批量裁剪和调整图像大小以创建缩略图

    我有一大堆 jpg 图像 我想为其创建缩略图 这些图像都有不同的尺寸和分辨率 但我希望所有缩略图都有标准尺寸 例如120x80 像素 但是 我不想拉伸图像 所以我想做以下一些事情 将图像裁剪为 1 5 1 的宽高比 将裁剪区域居中 即左右
  • 如何使用 Google App 脚本在 Google 文档中插入 RichLink(Chip Block)

    Google Docs 最近推出了一个功能 大家可以参考一下 Date Person 谷歌云端硬盘文档 以一个形式芯片块 如上图所示 这文件 A已存在于 Google 云端硬盘中 目前生成此类 Chip Block 的唯一方法是手动将鼠标悬
  • 如何阻止注入的 HTML-div / CSS 继承样式? (IE浏览器)

    我正在为 Internet Explorer 创建一个扩展 在网页上注入 CSS 样式的 span 标签 如果单击该组件的特定部分 则会显示一个弹出窗口 这个弹出窗口实际上是一个 DIV 元素 我在内容页面的最后注入了 BODY 标签 我在
  • C# 比较两个集合的更有效方法

    我有两个收藏 List
  • Treeview 节点具有透明文本背景而不是默认的白色

    我正在使用自定义绘制来尝试创建透明树视图 现在我正在测试启用视觉样式时 My CDDS PREPAINT处理程序工作正常 树已正确绘制父级的背景位图 我尝试添加CDDS ITEMPREPAINT我使用的处理程序SetBkColor LPNM
  • 将文本添加到 .txt 文件中每个新行的开头

    我想将预定义文本添加到文本文件上的每个新行 并使用添加的文本创建一个新的文本文件 请帮忙 在 Windows 中 可以这样做 for f delims L in oldfile txt do echo predefined text L g
  • 覆盖 Salesforce Apex 中抽象类的属性

    我在 apex 中有一个抽象类 其中有几个我想在子类中重写的属性 根据文档 属性支持覆盖和虚拟访问修饰符 但是 当我尝试在父类或子类中使用它们中的任何一个时 我收到一条错误消息 指出变量不能标记为虚拟 覆盖 以下是导致此错误的代码的传真 p
  • Struts2 jQuery标签选择不加载数据

    我正在尝试使用
  • 将整个文件传递给 JVM 参数

    我有几个系统都需要将相同的属性加载到 JVM 我可以使用 D 标志一次加载一个属性 但我正在寻找一种可以一次性加载整个文件中所有属性的东西 例如 我可以将 options file blah properties 添加到网络上的所有 jvm
  • 群发电子邮件跟踪

    如今 大多数在线提供的服务都声称可以 跟踪 电子邮件 但都是通过在电子邮件中嵌入图像来实现这一目的 我的问题是 这是唯一的方法吗 如果不是 还有其他方法吗 这些方法真的万无一失吗 有人对特定软件甚至在线小组有过任何运气吗 是的 这几乎是唯一
  • 数据库中已有一个名为“tbltable1”的对象

    我正在尝试将数据从一个表插入到具有相同结构的另一个表中 select into tbltable1 from tbltable1 Link 我收到以下错误消息 There is already an object named tbltabl
  • 在 TextBlob 中使用翻译功能时出现“HTTPError: HTTP Error 404: Not Found”

    当我尝试在 jupyter 笔记本的 TextBlob 库中使用翻译函数时 我得到 HTTPError HTTP Error 404 Not Found 我在这里发布了我的代码和错误消息的屏幕截图以供参考 5 6 天前 当我第一次运行完全相
  • 改变statusStrip的高度

    我在VS2010中有一个带有statusStrip的简单Windows窗体 无论我尝试什么 statusStrip的高度都没有改变 改变高度的正确方法是什么 thanks 我刚刚更改了 StatusStrip 大小 没有出现问题 创建一个新
  • 无法推断通用参数“T”

    我正在重构我的代码并添加对 Swift 的支持generics 我遇到了编译器错误 我的代码是 func dequeueReusableViewController
  • Passport 和 connect-flash:req.flash 不是函数

    我在学flash消息输入passport并在运行我的脚本时遇到此错误 req flash is not a function 这是我的配置 var flash require connect flash app use flash pass